要怎样才能与输入[名单] .append()函数[PYTHON 3]
问题描述:
我有这样的代码:要怎样才能与输入[名单] .append()函数[PYTHON 3]
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()
不会使我的输入字符串?
答
看来你似乎在这里做了一些错误的事情。首先,whatList
似乎是一个字符串而不是列表。所以你可能想先将它转换成列表。一旦你确定你的whatList
应该开始附加值。此外,global lists
正在做什么还有一些含糊之处。你可能也想解决这个问题。此外,一旦你得到输入,你可以简单地使用str
将它转换成字符串。
答
使用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'>
要么你whatlist对象是字符串或者你需要用'addtol = STR输入转换为字符串(输入())' –
可以告诉你,你叫'add'函数的代码?那么如何定义'lists'变量? – jdehesa
你能提一下'whatlist'和'lists'的值吗? – voidpro