有没有什么“pythonic方式”告诉python从一个字符串(或列表)循环到最后一个项目并以第一个结尾?Python:从最后一项开始循环,并以第一项结束
例如字Hans
我想蟒蛇阅读或它排序为snaH
接下来,我怎么能告诉pyhon如下:现在从字符串你得到,搜索“A”发现就OK了,如果你发现'n'跟在'a'后面,放''。 'n'之后再打印字母的原始顺序
有没有什么“pythonic方式”告诉python从一个字符串(或列表)循环到最后一个项目并以第一个结尾?Python:从最后一项开始循环,并以第一项结束
例如字Hans
我想蟒蛇阅读或它排序为snaH
接下来,我怎么能告诉pyhon如下:现在从字符串你得到,搜索“A”发现就OK了,如果你发现'n'跟在'a'后面,放''。 'n'之后再打印字母的原始顺序
这个怎么样?
>>> s = "Hans"
>>> for c in s[::-1]:
print c
s
n
a
H
另外,如果你想有一个新的字符串,是第一个相反,试试这个:
>>> "".join(reversed("Hans"))
'snaH'
当然,只要使用LIST_NAME [:: - 1]。例如
>>> l = ['one', 'two', 'three']
>>> for i in l[::-1]:
... print i
...
three
two
one
做到这一点的最清晰和最Python的方式是使用内置reversed()
。
wrong_way = [1, 2, 3, 4]
for item in reversed(wrong_way):
print(item)
其中给出:
4
3
2
1
这是因为它不仅将自然产生一个反向迭代器的最佳解决方案,但它也可以调用专用__reversed__()
方法,如果它存在,允许更有效地逆转某些对象。
您可以使用wrong_way[::-1]
来反转列表,但这在代码中可读性差得多,并且可能效率较低。但是,它确实显示了列表切片的功能。
注意reversed()
提供迭代器,所以如果你想用一个字符串来做到这一点,你需要将结果转换回字符串,这是幸运的容易的,因为你只是做:
"".join(iterator)
例如:
"".join(reversed(word))
的str.join()
方法采用迭代和每一个元素加入到一个字符串,使用电话线作为分隔符,所以在这里我们使用空字符串将它们背到后面。