簡體   English   中英

如何使用列表理解在2個列表之間選擇較低的值?

[英]How to use list comprehension to select lower value between 2 lists?

a = list of number with length k
b = list of number with length k

如何獲得位置a和b較低的列表c?

Example:
a = [0.6, 0.8, 0.4]
b = [0.4, 1.0, 0.5]

c = [0.4, 0.8, 0.4]

您可以像這樣使用zip()

c = [min(*item) for item in zip(a, b)]

輸出:

>>> a = [0.6, 0.8, 0.4]
>>> b = [0.4, 1.0, 0.5]
>>>
>>> c = [min(*item) for item in zip(a, b)]
>>> c
[0.4, 0.8, 0.4]

只需傳遞map兩個列表參數即可:

c = map(min, a, b)

這是minzip的簡單應用程序:

c = [min(aa, bb) for aa, bb in zip(a, b)]

如果您要進行很多這樣的計算,那么使用numpy可能值得:

c = numpy.minimum(a, b)

例如:

>>> a = numpy.array([0.6, 0.8, 0.4])
>>> b = numpy.array([0.4, 1.0, 0.5])
>>> numpy.minimum(a, b)
array([ 0.4,  0.8,  0.4])

使用numpy的minimum函數,該函數對數組元素進行逐個元素的最小化。

numpy.minimum(a, b)

暫無
暫無

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

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