【问题标题】:Print a string which has the reverse order打印具有相反顺序的字符串
【发布时间】:2022-08-20 00:31:58
【问题描述】:

我有以下问题:
打印具有相反顺序的字符串\'Python love We. Science Data love We\'

所以我尝试了这个:

strg = We love Data Science. We love Python
words = strg.split(\" \") 
words.reverse()
new_strg = \" \".join(words)
print(new_strg)

>>> Python love We Science. Data love We

但是答案并不像预期的那样,因为Science 之后的. 不在正确的位置。

有没有办法得到预期的结果?

  • 我会先用 \'.\' 分开。
  • 输出将用于什么`我们热爱数据科学(充满激情!),但不喜欢调试!?\"
  • 您的代码将 \"Science.\" 视为原始字符串中的一个项目。您希望它是两个独立的语义实体,其处理方式与空格分隔的单词不同。

标签: python string join split reverse


【解决方案1】:

这是你需要的输出吗?

Python love We. Science Data love We

然后代码是

strg = 'We love Data Science. We love Python'
pos = len(strg) - strg.index('.') - 2
words = [e.strip('.') for e in strg.split()]
words.reverse()
new_strg = ' '.join(words)
print(new_strg[:pos] + '.' + new_strg[pos:])

或者另一种方法:

strg = 'We love Data Science. We love Python'
new_strg = [s.split()[::-1] for s in strg.split('.')][::-1]
print(' '.join(new_strg[0]) + '. ' + ' '.join(new_strg[1]))
#or
print('{}. {}'.format(' '.join(new_strg[0]), ' '.join(new_strg[1])))

或者提高标准:

strg = 'We love Data Science. We love Python'
print('. '.join([' '.join(new_strg.split()[::-1]) for new_strg in strg.split('.')[::-1]]))

【讨论】:

  • 可以解释一下这个pos = len(strg) - strg.index('.') - 2的含义吗?
  • 从总头寸中减去当前头寸时,我应该以相反的顺序得到头寸。但是原来的索引是从零开始的,所以减1。而且位置需要在'W'旁边,所以再减1(即减2)
  • 好,我知道了。太感谢了
【解决方案2】:

可以这样做:

In [1]: s = "We love Data Science. We love Python"

In [2]: ". ".join(
    [" ".join(reversed(item.split())) for item in reversed(s.split("."))]
)
Out[2]: 'Python love We. Science Data love We'

【讨论】:

    【解决方案3】:

    例子:

    Input :  "We love Python"
    Output : "Python love We"  
    Input :  "We love Data Science"
    output : "Science Data love We"
    

    反转给定字符串程序中的单词

    string = "We love Python"
    s = string.split()[::-1]
    l = []
    for i in s:
        l.append(i)
    print(" ".join(l))
    

    或更简单的代码:

    string = "We love Python"
    print(" ".join(string.split()[::-1]))
    

    输出:

    Python love We
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 2022-01-17
      • 2016-02-17
      • 1970-01-01
      • 2019-06-15
      • 2021-12-09
      • 2015-05-05
      相关资源
      最近更新 更多