我正在尝试获取列表和浮点数的最小值,我有以下代码,但给出了错误
x=['14.99', '14.99', '15.00', '16.36']
y=21.00
min([float(i) for i in x.append(y)])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
#x= ['14.99', '14.99', '15.00', '16.36', 21.0] y got appended
但是,如果我愿意(在列表理解之前加y)
x=['14.99', '14.99', '15.00', '16.36']
y=21.00
x.append(y)
min([float(i) for i in x])
输出为:14.99#正确
我如何在一排中做到这一点?
答案 0 :(得分:3)
尝试
min(y, min([float(i) for i in x]))
或者这更易读
min(y, min(map(float, x)))
基本上,您将float y与列表中的最小值进行比较。
答案 1 :(得分:1)
我认为这很丑陋,但是您可以这样做:
min([float(i) for i in x+[y])])
答案 2 :(得分:0)
x=['14.99', '14.99', '15.00', '16.36']
y=21.00
min(float(x) for x in x+[y])
此操作将y
作为列表连接到x
列表,然后查找所有列表中的最小值。