gpt4 book ai didi

python - 比较具有不同数量项目的列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:11 24 4
gpt4 key购买 nike

我该怎么做?

A = ['fish', 'banana', 'old pajamas', 'Mutton', 'Beef', 'Trout']
B = ['fish', 'banana', 'old pajamas']

B in A = True
A in B = False

我尝试了“in”比较器,但它在两种情况下都返回 False,因为它正在检查列表 B 是否在列表 A 内,而不是 A 中 B 的项目。

除了像这样使用很长的 if 语句之外,是否有一种简单的方法可以做到这一点:

if B[0] == A[0] and B[1] == A[1] and B[2] == A[2]: 
return True
else: return False

最佳答案

In [8]: all(a==b for a,b in zip(A,B))
Out[8]: True

相当于

if B[0] == A[0] and B[1] == A[1] and B[2] == A[2]: 
return True
else: return False

zip A 中较短的一个没有更多元素时终止或 B :

In [9]: zip(A, B)
Out[9]: [('fish', 'fish'), ('banana', 'banana'), ('old pajamas', 'old pajamas')]

另一方面,如果您希望测试 A 的所有元素是否在 B ,那么您正在寻找子集关系。如果你转换 AB设置,那么你可以使用它的 <=运算符(operator):

In [12]: set(B) <= set(A)
Out[12]: True

BA 的子集.

In [13]: set(A) <= set(B)
Out[13]: False

A不是 B 的子集.


编辑:正如 Aशwini चhaudhary 指出的那样,集合也有一个 issubset method。 :

In [42]: set(B).issubset(A)
Out[42]: True

In [43]: set(A).issubset(B)
Out[43]: False

关于python - 比较具有不同数量项目的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23448808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com