如果不使用 reversed(),我将如何在函数中循环 Python 中的一组字符串?
偶然发现了以下范围:
range() 和 xrange() 采用指定步骤的第三个参数。因此,您可以执行以下操作。
range(10, 0, -1) 给出
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 但是对于迭代,你真的应该使用 xrange 来代替。所以,
xrange(10, 0, -1)
但是这些并不能真正与字符串说话?
您正在寻找的功能是list comprehensions。这些很有用,因为您不必迭代序列,这是range
和xrange
(在 2.x 中)提供的。
str
可以迭代和切片,就像字符串一样。唯一的区别是str
元素是不可变的。
以您的示例为例,假设您有一组字符串,并且想要遍历它们。没问题 - 请记住,集合对它们没有固有的顺序;他们只保证内容是独一无二的。
myset = set(["first", "second", "third", "fourth", "fifth"])
for i in myset:
print i
...打印:
second
fifth
fourth
third
first
在这种情况下,您可以使用序列类型的 step 参数自行反转单个字符串,该序列类型str
属于该类型。你可以这样做:
"this is the song that never ends"[::-1]
...打印:
'sdne reven taht gnos eht si siht'
尝试这个:
>>> str = 'abcdefghijklmnopqrstuvwxyz'
>>> str[::-1]
'zyxwvutsrqponmlkjihgfedcba'