是否有任何“Pythonic 方式”告诉 Python 从最后一项开始并以第一项结束在字符串(或列表)中循环?
例如单词 Hans 我希望 python 将其读取或排序为 snaH
接下来,我如何告诉 pyhon 以下内容:现在从你得到的字符串中,搜索 'a' 发现它没问题,如果你发现 'n' 跟在 'a' 之后,把 '.'在'n'之后然后打印字母的原始顺序
请您参考如下方法:
最清晰、最符合 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()方法采用迭代器并将每个元素连接到一个字符串中,使用调用字符串作为分隔符,因此这里我们使用空字符串将它们背靠背放置。
