誰かがこのコードのしくみを説明できますか?x = x + yとx = y + xが時々異なるのはなぜですか?
def reverse(text):
output = ""
for letter in text:
output = letter + output
return output
print reverse("abcdef")
なぜ "output = output + letter"を使用しても動作しないのですか?
誰かがこのコードのしくみを説明できますか?x = x + yとx = y + xが時々異なるのはなぜですか?
def reverse(text):
output = ""
for letter in text:
output = letter + output
return output
print reverse("abcdef")
なぜ "output = output + letter"を使用しても動作しないのですか?
str
の演算子は、の連結を意味します。コネクションの意味は何ですか?それは、最初のものののに2番目のものを置きます。
"a" + "b" # "ab"
"b" + "a" # "ba"
あなたはstr
は、以下を使用逆転したい場合はとにかく、それは多くの理由から効率的です。意志'A' + 'B'
はあなたに'AB'
ながら'B' + 'A'
を与える:TigerhawkT3が指摘@として使用すると、2つの文字列、順序が重要に参加するために使用+する場合
output = "".join(reversed(text))
さて、あなたは、
output = text[::-1]
'text [:: - 1]'おそらく良いです。 – TigerhawkT3
@ TigerhawkT3はい、私のソリューションよりもはるかに高速です。もしあなたがより多くの制御を必要とするならば、パイプラインとしてより多くの機能を置くことができ、すべてがイテレータを扱っている限り、効率的です。 –
私はスピードについて実際には考えていませんでした。 'text [:: - 1]'は、より短く、より読みやすく、かなり標準的です。 – TigerhawkT3
をはるかに、はるかに高速に使用することができます'BA'
を教えてください。だからあなたの機能で、あなたが毎回:
output = letter + output
は、それは新しい文字を取って、それを右へ、前の文字の文字列を追加しています。 (output = letterを出力した場合は、前の文字の右に新しい文字を追加するだけで、これと同じ文字列が返されます)
あなたのコードは機能しています何がおかしいの? – Will
私はあなたのコードの実行を実行する必要があると思います。数分以上かかることはありません。 – t0il3ts0ap