我有这样的代码:
def add(whatlist):
inf = True
while inf == True and str(whatlist) in lists:
addtol = input('What do you want to add to list {0}? Type in STOP_ to end this process.: '.format(whatlist))
if addtol.upper() != 'STOP_':
whatlist.append(addtol)
else:
inf = False当我输入一个列表时,解释器会说:
'str' object has no attribute 'append'我怎么才能让input()不让我的输入变成字符串呢?
发布于 2017-08-07 18:43:03
看起来你在这里做了一些错误的事情。首先,whatList似乎是一个字符串,而不是列表。因此,您可能希望首先将其转换为列表。一旦你解决了这个问题,你的whatList就应该开始向它追加数值了。此外,对于global lists正在做的事情也有一些模棱两可的地方。你可能也想解决这个问题。此外,一旦您获得输入,您可以简单地使用str将其转换为字符串。
发布于 2017-08-07 18:51:47
使用ast.literal_eval()使字符串成为列表。eval()也可以工作,但它不安全。
>>> import ast
>>> a = '[1,2,3,4]'
>>> ast.literal_eval(a)
[1, 2, 3, 4]
>>> type(ast.literal_eval(a))
<class 'list'>https://stackoverflow.com/questions/45544931
复制相似问题