在列表理解中追加到列表

时间:2019-06-24 13:15:31

标签: python list

我正在尝试获取列表和浮点数的最小值,我有以下代码,但给出了错误

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#正确

我如何在一排中做到这一点?

3 个答案:

答案 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列表,然后查找所有列表中的最小值。

请参见Allow python list append method to return the new list