我试图在这个列表中找到最小的数字,这个列表是我从一个txt列创建的,但是当我运行代码时,它给了我一个错误的最小数字。
这是我的代码:
import csv
with open('ar_blast.txt') as file:
reader = csv.reader(file,delimiter='\t')
lista = []
count = 0
for row in reader:
count = count +1
lista.append(row[10])
print(lista)
print(min(lista))
这是我的输出:
['1.59e-32', '4.57e-32', '2.76e-24', '2.17e-23', '4.73e-10', '0.006', '0.009', '0.012', '0.015', '0.040', '0.083', '0.19', '0.22', '0.72', '0.94', '2.4', '2.5', '3.0', '3.4', '4.9', '5.7', '6.2', '6.3', '9.1', '8.98e-18', '8.49e-14', '1.41e-13', '8.44e-12', '1.20e-11', '2.81e-10', '5.80e-04', '7.95e-04', '0.005', '0.005', '0.006', '0.019', '0.064', '0.065', '0.068', '0.073', '0.19', '0.19', '0.24', '0.47', '0.90', '2.0', '0.94', '1.1', '1.6', '1.6', '1.6', '1.7', '2.0', '2.1', '2.2', '3.3', '3.1', '5.2', '8.0', '9.8', '8.98e-18', '8.49e-14', '1.41e-13', '8.44e-12', '1.20e-11', '2.81e-10', '5.80e-04', '7.95e-04', '0.005', '0.005', '0.006', '0.019', '0.064', '0.065', '0.068', '0.073', '0.19', '0.19', '0.24', '0.47', '0.90', '2.0', '0.94', '1.1', '1.6', '1.6', '1.6', '1.7', '2.0', '2.1', '2.2', '3.3', '3.1', '5.2', '8.0', '9.8']
0.005
我要打印的是最小的数字,显然不是0.005
1条答案
按热度按时间8i9zcol21#
问题是列表中的项目是
str
而不是数字。例如:要解决这个问题,你可以像这样把数字转换成浮点数: