有沒有什麼「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()
方法採用迭代和每一個元素加入到一個字符串,使用電話線作爲分隔符,所以在這裏我們使用空字符串將它們背到後面。