不能在python中使用带有多个小数位的列表作为输入

时间:2015-03-12 03:00:29

标签: python windows list python-idle

我创建了一个使用顺序搜索组织列表的算法,我遇到了问题。我在Windows上使用Idle在python(版本3.4.2)中编程,这种情况发生了:

http://i.imgur.com/fbHAHxY.png

正如你所看到的(我希望)我试图创建一个带有多个小数位的数字的输入,并且它以这种奇怪的方式工作。我的问题是:我该如何解决?

以下是代码:

#coding:utf8
import time
x=list(input("Type a list:"))
start=time.time()
lista=[]
for a in range(len(x)):
    for b in range(len(x)-1):
    for c in range(b+1,b+2):
        if x[b]>x[c]:
            lista.append(x[b])
            lista.append(x[c])
            x[b]=lista[1]
            x[c]=lista[0]
            lista=[]
        print (x)
        end=time.time()
        print ((end-start)*1000,"ms") 

如果你看不到图像:

Input:['1','23','45','67','89','43','51','23','34']

Output:["'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", ',', ',', ',', ',', ',', ',', ',', ',', '1', '1', '2', '2', '3', '3', '3', '3', '4', '4', '4', '5', '5', '6', '7', '8', '9', '[', ']']

1 个答案:

答案 0 :(得分:1)

这一行:

x=list(input("Type a list:"))

没有任何帮助你的东西。你需要解析字符串。

>>> ast.literal_eval('[1,2,3]')
[1, 2, 3]