Python比较两个列表的值

2024-03-28 10:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有:

usa = ["kebab","pizza", "hamburger"]
uk = ["kebab", "hamburger"]

我如何检查英国是否有美国所有的膳食

我试过这个:

for i in usa: 
if i not in str(uk):
    print("UK doesn't serve %s" % i)

这样做有效,但只会返回英国名单上丢失的项目。我要知道到底少了什么。这个用餐清单可能包含1000条或更多的记录


Tags: inforifnotprintserveuk膳食
2条回答

您可以使用all使用以下理解方式

usa = ["kebab","pizza", "hamburger"]
uk = ["kebab", "hamburger"]

print (all(i in usa for i in uk))
# True

使用set

usa = ["kebab","pizza", "hamburger"]
uk = ["kebab", "hamburger"]

s1 = set(usa)
s2 = set(uk)

s1.issuperset(s2) # True
s2.issubset(s1)   # False

找到交叉点:

s1.intersection(s2) # {'hamburger', 'kebab'}

相关问题 更多 >