我已经看过这篇关于可迭代python错误的文章:
"Can only iterable" Python error
但那是关于“无法分配可迭代”的错误。我的问题是为什么python告诉我:
"list.py", line 6, in <module>
reversedlist = ' '.join(toberlist1)
TypeError: can only join an iterable
我不知道我做错了什么!我正在关注这个帖子:
Reverse word order of a string with no str.split() allowed
特别是这个答案:
>>> 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)
程序应该像苹果和梨一样输入,然后生产出梨和苹果。
帮助将不胜感激!
答案 0 :(得分:6)
splitlist1.reverse()
就地执行,因此返回None
。所以tobereversedlist1
因此是无,因此是错误。
您应该直接传递splitlist1
:
splitlist1.reverse()
reversedlist = ' '.join(splitlist1)
答案 1 :(得分:0)
字符串连接必须满足要迭代的连接对象(list,tuple)
splitlist1.reverse()返回None,None对象不支持迭代。