反转字符串
我有一组字符串内容,我需要用Python把它们的顺序反过来。内容如下:
- Python
- Java
- 微软
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,这意味着它会从后往前一个一个地处理序列,这实际上就是序列的反向。(省略 start
和 end
会使用它们的默认值,也就是整个序列。)