文字列を逆にしようとしていて、以下のコードを使用していますが、結果の逆リストの値は None です。
コード:
str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)
を返しますTypeError
。なんで?
文字列を逆にしようとしていて、以下のコードを使用していますが、結果の逆リストの値は None です。
コード:
str_a = 'This is stirng'
rev_word = str_a.split()
rev_word = rev_word.reverse()
rev_word = ''.join(rev_word)
を返しますTypeError
。なんで?
文字列のさまざまな反転:
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
リストの反転は、複数の方法を使用して実行できます。
前の回答で述べたように、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()
スライスよりも関数のパフォーマンスが向上しました。