Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加两个列表并返回具有最高值的新列表_Python - Fatal编程技术网

Python 添加两个列表并返回具有最高值的新列表

Python 添加两个列表并返回具有最高值的新列表,python,Python,假设我有两个列表,如下所示: x1 = [1,2,3,4,5,6,7,8,9] x2 = [9,8,7,6,5,4,3,2,1] 我现在想把它们一起添加到一个新列表中,但新列表包含了每个列表中最高(或最低)的值 因此,如果我需要最高值,则生成的新列表将变成: final_list_highest = [9,8,7,6,5,6,7,8,9] 对于最低值: final_list_lowest = [1,2,3,4,5,4,3,2,1] 希望你能看到我要去的地方:) 有没有什么简单的技巧可以做到

假设我有两个列表,如下所示:

x1 = [1,2,3,4,5,6,7,8,9]
x2 = [9,8,7,6,5,4,3,2,1]
我现在想把它们一起添加到一个新列表中,但新列表包含了每个列表中最高(或最低)的值

因此,如果我需要最高值,则生成的新列表将变成:

final_list_highest = [9,8,7,6,5,6,7,8,9]
对于最低值:

final_list_lowest = [1,2,3,4,5,4,3,2,1]
希望你能看到我要去的地方:)

有没有什么简单的技巧可以做到这一点,我还没有弄明白,或者你会怎么做呢

final_list_highest = [max(a, b) for a, b in zip(x1, x2)]
应给出具有最高值的列表

使用
min
获取最低值

应给出具有最高值的列表

使用
min
获取最低值。

在一行中

min_list, max_list = zip(*[(min(a,b),max(a,b)) for a,b in zip(x1,x2)])
这假设列表的大小相同。您可以使用
sorted()
而不是max/min,也许它会稍微快一点,但我发现这一行更可读。

min_list, max_list = zip(*[(min(a,b),max(a,b)) for a,b in zip(x1,x2)])

这假设列表的大小相同。您可以使用
sorted()
而不是max/min,它可能会稍微快一点,但我发现它更具可读性。

由于问题源于,因此可以假设可以使用numpy。因此,解决方案是将
numpy.min
numpy.max
与指定的轴一起使用

import numpy as np

x1 = [1,2,3,4,5,6,7,8,9]
x2 = [9,8,7,6,5,4,3,2,1]

print (np.c_[x1,x2].min(axis=1)) # prints [1 2 3 4 5 4 3 2 1]
print (np.c_[x1,x2].max(axis=1)) # prints [9 8 7 6 5 6 7 8 9]

由于问题源于,因此可以假设可以使用numpy。因此,解决方案是将
numpy.min
numpy.max
与指定的轴一起使用

import numpy as np

x1 = [1,2,3,4,5,6,7,8,9]
x2 = [9,8,7,6,5,4,3,2,1]

print (np.c_[x1,x2].min(axis=1)) # prints [1 2 3 4 5 4 3 2 1]
print (np.c_[x1,x2].max(axis=1)) # prints [9 8 7 6 5 6 7 8 9]

您关心最终列表中元素的顺序吗?或者只包含最高/最低值?这似乎是一个适合8个答案的问题;)您可以使用
low,high=zip(*映射(排序,列表(zip(x1,x2)))
您关心最终列表中元素的顺序吗?或者只包含最高/最低值?这似乎是一个适合8个答案的问题;)您可以使用
low,high=zip(*映射(排序,列表(zip(x1,x2)))
当使用这个最小值和最大值时,循环将如何进行?假设我有100个列表,我希望创建一个列表,其中包含所有100个列表中的最高值和最低值。我真的不确定循环在这里是怎么工作的…你说的循环是指“for循环”?当使用这个最小值和最大值时,循环是怎么工作的?假设我有100个列表,我希望创建一个列表,其中包含所有100个列表中的最高值和最低值。我真的不知道循环在这里是怎么工作的…你说的循环是指“for循环”?