0

reverse()を使用せずに、関数内でPythonの文字列のセットをループするにはどうすればよいですか?

次のような範囲に遭遇しました:

range()およびxrange()は、ステップを指定する3番目のパラメーターを取ります。したがって、次のことができます。

range(10、0、-1)これは

[10、9、8、7、6、5、4、3、2、1]ただし、反復の場合は、代わりにxrangeを使用する必要があります。それで、

xrange(10、0、-1)

しかし、これらは実際には文字列に話しかけませんか?

4

2 に答える 2

1

あなたが探している機能はリスト内包です。これらは、シーケンスを繰り返す必要がないという点で便利です。これはrangexrange(2.xで)提供されるものです。

str文字列のように、繰り返してスライスすることができます。唯一の違いは、str要素が不変であるということです。

あなたの例では、文字列のセットがあり、それらを反復処理したいとします。問題ありません。セットには固有の順序がないことを覚えておいてください。内容が一意であることを保証するだけです。

myset = set(["first", "second", "third", "fourth", "fifth"])
for i in myset:
    print i

...これは印刷します:

second
fifth
fourth
third
first

また、所属するシーケンスタイプのstepパラメータを使用して、1つの文字列を単独で反転できる場合もありますstr。あなたはこれでそれをすることができます:

"this is the song that never ends"[::-1]

...これは印刷します:

'sdne reven taht gnos eht si siht'
于 2012-12-02T02:58:35.593 に答える
1

これを試して:

>>> str = 'abcdefghijklmnopqrstuvwxyz'
>>> str[::-1]
'zyxwvutsrqponmlkjihgfedcba'
于 2013-12-06T09:32:57.200 に答える