Compare/find 另一个列表的嵌套列表中的列表
Compare/find a list in another list's nested lists
我有几个名为 find
的列表。我想知道这些 find
是否是 full_list
的一部分。列表 find 1-4
是 full_list
的一部分,而列表 find 5-7
不是。
下面的例子returns "Yes"
.
find1 = [[1, 1]]
find2 = [[1, 1], [2, 2]]
find3 = [[1, 1], [3, 3]]
find4 = [[4, 4], [2, 2], [3, 3]]
find5 = [[1, 0]]
find6 = [[1, 1], [2, 0]]
find7 = [[1, 1], [3, 0]]
full_list = [[1, 1], [2, 2], [3, 3], [4, 4]]
if find2[0] in full_list and find2[1] in full_list:
print("Yes")
else:
print("No")
因为len(find2) != len(find4)
,目前的if
语句非常笨拙,几乎没有用。
如何使这项工作更通用?
您可以将 all()
与生成器一起使用,其中 returns 一个 True
如果一切都是真实的或 False
:
if all(x in full_list for x in find2):
print("Yes")
else:
print("No")
# => prints Yes
这个是通用的,只需要将 find2
更改为您需要用 full_list
检查的任何列表。
试试这个:
set1 = set(find1)
full_set = set(full_list)
if set1.issubset(full_set):
print("Yes")
else:
print("No")
你可以设置一个函数来处理所有这些,所有提到的方法都可以,只是显示其他选项,你可以使用filter
并比较lens
还有
def is_in_full(k):
l = list(filter(lambda x: x in k, full_list))
if len(l) == len(k):
return 'Yes'
else:
return 'No'
print(is_in_full(find1))
# Yes
我有几个名为 find
的列表。我想知道这些 find
是否是 full_list
的一部分。列表 find 1-4
是 full_list
的一部分,而列表 find 5-7
不是。
下面的例子returns "Yes"
.
find1 = [[1, 1]]
find2 = [[1, 1], [2, 2]]
find3 = [[1, 1], [3, 3]]
find4 = [[4, 4], [2, 2], [3, 3]]
find5 = [[1, 0]]
find6 = [[1, 1], [2, 0]]
find7 = [[1, 1], [3, 0]]
full_list = [[1, 1], [2, 2], [3, 3], [4, 4]]
if find2[0] in full_list and find2[1] in full_list:
print("Yes")
else:
print("No")
因为len(find2) != len(find4)
,目前的if
语句非常笨拙,几乎没有用。
如何使这项工作更通用?
您可以将 all()
与生成器一起使用,其中 returns 一个 True
如果一切都是真实的或 False
:
if all(x in full_list for x in find2):
print("Yes")
else:
print("No")
# => prints Yes
这个是通用的,只需要将 find2
更改为您需要用 full_list
检查的任何列表。
试试这个:
set1 = set(find1)
full_set = set(full_list)
if set1.issubset(full_set):
print("Yes")
else:
print("No")
你可以设置一个函数来处理所有这些,所有提到的方法都可以,只是显示其他选项,你可以使用filter
并比较lens
还有
def is_in_full(k):
l = list(filter(lambda x: x in k, full_list))
if len(l) == len(k):
return 'Yes'
else:
return 'No'
print(is_in_full(find1))
# Yes