我已经看过这篇关于可迭代 python 错误的文章:

“只能迭代"Python 错误

但这是关于错误"无法分配可迭代”。

 "list.py", line 6, in <module>
    reversedlist = ' '.join(toberlist1)
TypeError: can only join an iterable

我不知道我做错了什么!

反转字符串的词序,不允许使用 str.split()

特别是这个答案:

>>> 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()与许多列表方法一样,就地起作用,因此返回Nonetobereversedlist1因此是 None,因此出现错误。

你应该通过splitlist1直接地:

splitlist1.reverse()
reversedlist = ' '.join(splitlist1)

来自: stackoverflow.com