イテラブルpythonエラー:
しかし、それは「イテラブルを割り当てることができない」というエラーに関するものでした。私の質問はなぜpythonが私に言っているのかです:
"list.py", line 6, in <module>
reversedlist = ' '.join(toberlist1)
TypeError: can only join an iterable
私は何が間違っているのかわかりません!私はこのスレッドをフォローしていました:
具体的にはこの答え:
>>> s = 'This is a string to try'
>>> r = s.split(' ')
['This', 'is', 'a', 'string', 'to', 'try']
>>> r.reverse()
>>> r
['try', 'to', 'string', 'a', 'is', 'This']
>>> result = ' '.join(r)
>>> result
'try to string a is This'
そして、コードをアダプターに入力させます。しかし、それを実行すると、上記のエラーが表示されました。私は完全な初心者なので、エラーメッセージの意味と修正方法を教えてください。
以下のコード:
import re
list1 = input ("please enter the list you want to print")
print ("Your List: ", list1)
splitlist1 = list1.split(' ')
tobereversedlist1 = splitlist1.reverse()
reversedlist = ' '.join(tobereversedlist1)
yesno = input ("Press 1 for original list or 2 for reversed list")
yesnoraw = int(yesno)
if yesnoraw == 1:
print (list1)
else:
print (reversedlist)
プログラムは、りんごや梨などの入力を受け取り、出力の梨やりんごを生成する必要があります。
助けていただければ幸いです!
splitlist1.reverse()
は、多くのリストメソッドと同様にインプレースで動作するため、None
を返します。したがって、tobereversedlist1
はNoneなので、エラーになります。
splitlist1
を直接渡す必要があります。
splitlist1.reverse()
reversedlist = ' '.join(splitlist1)
文字列結合は、反復される接続オブジェクトを満たす必要があります(リスト、タプル)
splitlist1.reverse()はNoneを返し、Noneオブジェクトは反復をサポートしていません。