簡體   English   中英

在列表理解中追加到列表

[英]appending to list in list comprehension

我正在嘗試獲取列表和浮點數的最小值,我有以下代碼,但它給出了錯誤

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

我怎樣才能做到這一點?

嘗試這個

min(y, min([float(i) for i in x]))

或者這更可讀

min(y, min(map(float, x)))

基本上,您將float y與列表中的最小值進行比較。

我認為這很丑陋,但您可以這樣做:

min([float(i) for i in x+[y])])
x=['14.99', '14.99', '15.00', '16.36']
y=21.00
min(float(x) for x in x+[y])

這會將y作為列表連接到x列表,然后找到所有列表中的最小值。

請參見允許python list append方法返回新列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM