输入列表继续被解释为字符串

时间:2014-09-16 11:46:44

标签: python

所以我在学校制作了这个小代码,我知道input()可以理解列表。我在家里再试一次,但它不起作用。我的学校电脑有python 2.而我的笔记本电脑有3.4。

代码看起来像这样

a = input()
list = []
count = 0
for y in range(1, len(a)):
    min = a[count]
    for x in range(count +1, len(a)):
        if min > a[x]:
            min = a[x]

    print(min)
    a[count] = min  #str object does not support item assignment
    count=count+1

print (a)

我想输入一个像[1,2,3,4,5]这样的列表,但是当我想将它看作一个列表时,它会将整个事物作为字符串和逗号一起读取整数。

2 个答案:

答案 0 :(得分:3)

Python 3' s input返回一个字符串(与Python 2' s raw_input相同),而Python 2' input评估文本。要获得类似的行为,如果您有一个可以评估的有效Python列表,那么您可以使用ast.literal_eval,例如:

import ast

a = ast.literal_eval(input())
# do other stuff with `a` here...

因此,您输入[1, 2, 3, 4, 5]之类的内容作为输入,并且您最终将a作为Python列表。

答案 1 :(得分:0)

我假设您的输入类似于:"1 2 3 4 5" - 根据稍后出现的代码判断。这个oufcourse是一个字符串。如果你想使用字符串中的numbrs作为整数,你需要:

a = input()
a = map(int, a.split())