列表的输入发生了变化,我该如何纠正?

时间:2019-06-13 14:04:49

标签: python-3.x list types

这是我代码的开头:

mylist = input()

作为输入,我有:

In:   [1, 2, 3, 5, 7, 9]

但是他们定义了:

mylist = '[1, 2, 3, 5, 7, 9]'

如何删除“”?

2 个答案:

答案 0 :(得分:0)

要么获取列表,要么

 mylist = list(map(int,input().strip().split()))

ex输入将为:1 2 3 4 5,输出将为[1,2,3,4,5]

就您而言,mylist=eval(mylist)

答案 1 :(得分:0)

  

从input()返回值:

     

input()方法从输入(通常是用户)读取一行,然后进行转换   通过删除结尾的换行符将行转换成字符串,然后返回   它。

因此,您拥有:

'[1, 2, 3, 5, 7, 9]' #  <class 'str'>

我们可以在此处使用ast.literal_eval()将字符串作为python表达式求值。它可以安全地计算一个表达式节点或包含Python表达式的字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串,数字,元组,列表,字典,布尔值和无。

mylist = input()
print (mylist)
print (type(mylist)) # <class 'str'>

import ast
mylist_ = ast.literal_eval(mylist)
print (mylist_)
print (type(mylist_)) # <class 'list'>

输出:

[1, 2, 3, 5, 7, 9]
<class 'str'>
[1, 2, 3, 5, 7, 9]
<class 'list'>