不能使用多于一位小数的列表作为 python 中的输入
Can´t use a list with more than one decimal place as input in python
我创建了一个使用顺序搜索来组织列表的算法,但我遇到了问题。我在 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', '[', ']']
这一行:
x=list(input("Type a list:"))
对您没有任何帮助。您需要解析字符串。
>>> ast.literal_eval('[1,2,3]')
[1, 2, 3]
我创建了一个使用顺序搜索来组织列表的算法,但我遇到了问题。我在 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', '[', ']']
这一行:
x=list(input("Type a list:"))
对您没有任何帮助。您需要解析字符串。
>>> ast.literal_eval('[1,2,3]')
[1, 2, 3]