反转字符串

-1 投票
4 回答
1254 浏览
提问于 2025-04-15 14:20

我有一组字符串内容,我需要用Python把它们的顺序反过来。内容如下:

  1. Python
  2. Java
  3. 微软

4 个回答

1
>>> l = ["Microsoft", "Java", "Python"]
>>> l.reverse()
>>> l
['Python', 'Java', 'Microsoft']
>>> 

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

1

对于序列来说,最简单明了的选择就是使用“reversed”,不过这样得到的结果总是一个列表。所以如果你想处理字符串,可以先用“reversed”把它反转,然后再把列表里的元素连接成一个字符串;或者你也可以用负数索引来切片,这种方法可能更高效一些,我想。

s = "abcd"
reversed(s) #-> ['d','c','b','a']
"".join(_) #-> 'dcba'

#or

s[::-1] #-> 'dcba'
25

如果你想要一个新的列表:

a = ["Python", "Java", "Microsoft"]
b = a[::-1]
# b is now ["Microsoft", "Java", "Python"]

或者

a = ["Python", "Java", "Microsoft"]
b = list(reversed(a))
# b is now ["Microsoft", "Java", "Python"]

如果你想修改一个已经存在的列表:

a = ["Python", "Java", "Microsoft"]
a.reverse()
# a is now ["Microsoft", "Java", "Python"]

如果你想要一个列表,其中每个字符串的字符都是反向的:

a = ["Python", "Java", "Microsoft"]
b = [x[::-1] for x in a]
# b is now ["nohtyP", "avaJ", "tfosorciM"]

使用切片语法 a[::-1] 返回的结果是 a 的反向序列,原因在于切片语法是这样工作的:

sequence[start:end:step]

因为你把 step 设置为 -1,这意味着它会从后往前一个一个地处理序列,这实际上就是序列的反向。(省略 startend 会使用它们的默认值,也就是整个序列。)

撰写回答