可能性の重複:
Traverse a list in reverse order in PythonPythonでタプルを逆にするには?
これは可能ですか?ちょうどタプルを逆にする方法を探しているので、それを逆に反復することができます。
可能性の重複:
Traverse a list in reverse order in PythonPythonでタプルを逆にするには?
これは可能ですか?ちょうどタプルを逆にする方法を探しているので、それを逆に反復することができます。
これを実行するには、2つの慣用的な方法があります。
reversed(x) # returns an iterator
または
x[::-1] # returns a new tuple
タプルは不変であるので、その場でタプルを逆にする方法はありませんが。
編集: はLVCのコメント@の構築、それが実際に逆転することを避けるために、既知の長さを有する配列に依存している。すなわち、reversed
で返される反復子は
def myreversed(seq):
for i in range(len(x) - 1, -1, -1):
yield seq[i]
に相当しますタプル。
タプルが大きい場合は、reversed
ですが、すべてが使いやすい場合はseq[::-1]
、小さい場合はですが、Pythonのパフォーマンスはしばしば驚くほどですそれを測る!
ありがとうございます、どちらが速いでしょうか?イテレータのようなサウンドは、必要に応じて繰り返しますか?もしそうなら、最初にリストを逆にすることなく、これを効果的にどのように行うのですか?反復するたびに逆転していますか? –
@JoanVenge 'reversed'は、' tuple'sが最後に開始して後方に向かって動作するシーケンスであることを利用しています。 – lvc
@JoanVenge私の編集を参照してください(ty lvc、ただあなたのコメントを展開しました) – tobyodavies
reversed
組み込み関数を使用できます。
>>> x = (1, 2, 3, 4)
>>> y = reversed(x)
>>> tuple(y)
(4, 3, 2, 1)
あなただけのタプルを反復処理したい場合は、もう一度タプルに変換することなく直接reversed
によって返されたイテレータを使用することができます。
>>> for k in reversed(x):
... print k,
...
4 3 2 1
、すなわちS [:: - 1]
In [20]: s = (1, 2, 3)
In [21]: s[::-1]
Out[21]: (3, 2, 1)
と
In [24]: for i in s[::-1]:
....: print i
....:
3
2
1
あなたは 'reversed'を使用してみましたか? – Wes
この質問には多くの重複がありますが、それらはすべてタプルの文字列またはリストを要求しているようです。答えは同じです。例:http://stackoverflow.com/questions/931092/reverse-a-string-in-python http://stackoverflow.com/questions/6827413/reverse-does-not-work-on-a-python-literal http://stackoverflow.com/questions/529424/traverse-a-list-in-reverse-order-in-python – agf
ありがとうございました。タプルを逆にすることについて正確に話しているものは見つかりませんでしたが、私はあなたが意味するものを見ています。 –