如何使用列表推导来选择2个列表之间的较低值?

时间:2016-12-21 19:41:48

标签: python list list-comprehension

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]

4 个答案:

答案 0 :(得分:6)

您可以像这样使用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]

答案 1 :(得分:3)

只需传递c = map(min, a, b) 两个列表参数:

private static String getMD5(String input) throws NoSuchAlgorithmException {
    final String md5Hex = md5Hex(input);
    return md5Hex;
}

答案 2 :(得分:1)

这是minzip的简单应用:

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

如果您要进行这样的计算,可能值得使用numpy

c = numpy.minimum(a, b)

e.g:

>>> 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])

答案 3 :(得分:1)

使用numpy的minimum函数,它在元素方面最小化数组元素。

numpy.minimum(a, b)