50

文字列を逆にしようとしていて、以下のコードを使用していますが、結果の逆リストの値は None です。

コード:

str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)

を返しますTypeError。なんで?

4

8 に答える 8

7

文字列のさまざまな反転:

instring = 'This is a string'
reversedstring = instring[::-1]
print reversedstring        # gnirts a si sihT
wordsreversed = ' '.join(word[::-1] for word in instring.split())
print wordsreversed         # sihT si a gnirts
revwordorder = ' '.join(word for word in instring.split()[::-1])
print revwordorder          # string a is This
revwordandorder = ' '.join(word[::-1] for word in instring.split()[::-1])
print revwordandorder       # gnirts a si sihT
于 2012-09-09T05:10:08.273 に答える
0

リストの反転は、複数の方法を使用して実行できます。
前の回答で述べたように、2 つは非常に顕著で、1 つはreverse()機能を備え、2 つはスライス機能を備えています。どちらを優先すべきかについて、いくつかの洞察を提供しています。reverse()Python リストの反転には常に関数を使用する必要があります。2 つの理由、1 つはその場での反転、2 つは他よりも高速です。私の答えを裏付ける数字がいくつかありますが、

In [15]: len(l)
Out[15]: 1000

In [16]: %timeit -n1 l.reverse()
1 loops, best of 3: 7.87 µs per loop

In [17]: %timeit -n1 l[::-1]
1 loops, best of 3: 10 µs per loop

1000 個の整数リストの場合、reverse()スライスよりも関数のパフォーマンスが向上しました。

于 2015-12-29T09:44:31.627 に答える