2017-08-07 16 views
0

我有这样的代码:要怎样才能与输入[名单] .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()不会使我的输入字符串?

+0

要么你whatlist对象是字符串或者你需要用'addtol = STR输入转换为字符串(输入())' –

+4

可以告诉你,你叫'add'函数的代码?那么如何定义'lists'变量? – jdehesa

+3

你能提一下'whatlist'和'lists'的值吗? – voidpro

回答

0

看来你似乎在这里做了一些错误的事情。首先,whatList似乎是一个字符串而不是列表。所以你可能想先将它转换成列表。一旦你确定你的whatList应该开始附加值。此外,global lists正在做什么还有一些含糊之处。你可能也想解决这个问题。此外,一旦你得到输入,你可以简单地使用str将它转换成字符串。

0

使用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'>