2024-04-24 05:20:10 发布
网友
list(set(a[0]) & set(a[1]) & set(a[2]) & set(a[3]) & set(a[4]))
有没有人知道如何写这个,这样我们就不需要事先知道我们会得到多少个列表?(即5不是硬编码的)?你知道吗
每个a是一个大小不一的列表。你知道吗
只要您至少有一套,就可以这样做:
list(set(a[0]).intersection(*a[1:]))
如果可能没有集合,则必须自己决定“无集合的交集”在应用程序中的实际含义。如果您想要空集:
list(set(*a[:1]).intersection(*a[1:]))
我认为值得注意的是,至少要提高人们对编程的一般理解,您要做的可以描述为映射,然后减少或折叠。具体来说,您希望将set映射到a上,然后将&折叠到结果上。你知道吗
set
a
&
我不是Python专家,但在Python中可以这样做:
from functools import reduce a = [ [1,2,3], [1,2,3,4], [1,2,4,5], [1,2,3,5], ] intersection = lambda x, y: x & y mapped = list(map(set, a)) reduced = reduce(intersection, mapped)
请注意,此实现要求a为非空。你知道吗
只要您至少有一套,就可以这样做:
如果可能没有集合,则必须自己决定“无集合的交集”在应用程序中的实际含义。如果您想要空集:
我认为值得注意的是,至少要提高人们对编程的一般理解,您要做的可以描述为映射,然后减少或折叠。具体来说,您希望将
set
映射到a
上,然后将&
折叠到结果上。你知道吗我不是Python专家,但在Python中可以这样做:
请注意,此实现要求
a
为非空。你知道吗相关问题 更多 >
编程相关推荐