Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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,我有两份清单: List1 = [1,5,9,15,17,23] List2=[1,2,3,8,15,20,29,27,34,38,39,56] 我想比较List1和List2,并想得到List1中的所有值,以及List2中较小或等效于List1中任何值的值 因此,我的结果列表将是 [1,5,9,15,17,23,1,2,3,8,15,20]您可以使用列表理解: max1 = max(List1) max2 = max(List2) newlist = [x for x in List1 if

我有两份清单:

List1 = [1,5,9,15,17,23]
List2=[1,2,3,8,15,20,29,27,34,38,39,56]
我想比较List1和List2,并想得到List1中的所有值,以及List2中较小或等效于List1中任何值的值

因此,我的结果列表将是
[1,5,9,15,17,23,1,2,3,8,15,20]

您可以使用列表理解:

max1 = max(List1)
max2 = max(List2)
newlist = [x for x in List1 if x <= max2] + [x for x in List2 if x <= max1]
max1=max(列表1)
最大值2=最大值(列表2)
newlist=[x表示列表1中的x,如果x
l1=[1,5,9,15,17,23]
l2=[1,2,3,8,15,20,29,27,34,38,39,56]
最大值=最大值(l1)

l1+[val代表l2中的val,如果val这将连接List1和List2的每个元素val,后者大于List1的最大元素,并存储在List3中

List1 = [1,5,9,15,17,23]
List2 = [1,2,3,8,15,20,29,27,34,38,39,56]

List3 = List1 + [val for val in List2 if val <= max(List1)]
List1=[1,5,9,15,17,23]
清单2=[1,2,3,8,15,20,29,27,34,38,39,56]

List3=List1+[val代表List2中的val如果val我认为这是一个更好的选择:

max1 = max(List1)
result = List1[:]

for x in List2:
    if x <= max1:
        if not x in result:
            result.append(x)
max1=max(列表1)
结果=列表1[:]
对于列表2中的x:

如果x,你的解决方案是什么?你所说的比较是什么意思?看起来你所做的只是将list2连接到list1,其中list2@SayanChowdhury中的值我曾想过使用嵌套循环。但这不是我想要的路径go@AChampion:你可以这么说。我只需要列表2中的值,这些值小于或等于该值列表1的s
l1+[val for val in l2 if val@AChampion-好的观点。我把答案放在某种程度上是反射性的,没有任何思考。编辑答案以使用您的变体。“要么更小,要么等于列表1中的任何值”刚刚更正了它。1.它可能比列表理解变体慢得多。2.它没有给出正确的答案。正如我在评论中所说的,您可以通过删除结果中的if复选框x来允许重复。不同的行为旨在作为替代解决方案,删除重复项。但是,是的,在changin之后g如果代码允许重复,我的实现将在运行两个解决方案1MM次后大约慢2秒。
max1 = max(List1)
result = List1[:]

for x in List2:
    if x <= max1:
        if not x in result:
            result.append(x)