gpt4 book ai didi

python - 如何使用 Python 'in' 运算符检查我的列表/元组是否包含每个整数 0、1、2?

转载 作者:太空狗 更新时间:2023-10-29 22:00:29 26 4
gpt4 key购买 nike

如何使用 Python in 运算符检查我的列表/元组 sltn 是否包含整数 0、1 和 2?

我尝试了以下,为什么他们都错了:

# Approach 1
if ("0","1","2") in sltn:
kwd1 = True

# Approach 2
if any(item in sltn for item in ("0", "1", "2")):
kwd1 = True

更新:为什么我必须将 ("0", "1", "2") 转换为元组 (1, 2, 3)?还是列表 [1, 2, 3]

最佳答案

使用 in 关键字是调用对象的 __contains__ 方法的简写。

>>> a = [1, 2, 3]
>>> 2 in a
True
>>> a.__contains__(2)
True

因此,("0","1","2") in [0, 1, 2] 询问元组 ("0", "1", "2") 包含在列表 [0, 1, 2] 中。如果 False,则此问题的答案。要成为 True,您必须有一个像这样的列表:

>>> a = [1, 2, 3, ("0","1","2")]
>>> ("0","1","2") in a
True

另请注意,元组的元素是字符串。您可能想检查您的元组中的任何或所有元素 - 在将这些元素转换为整数之后 - 是否包含在您的列表中。

要检查元组的所有元素(作为整数)是否包含在列表中,使用

>>> sltn = [1, 2, 3]
>>> t = ("0", "2", "3")
>>> set(map(int, t)).issubset(sltn)
False

要检查元组的任何元素(作为整数)是否包含在列表中,您可以使用

>>> sltn_set = set(sltn)
>>> any(int(x) in sltn_set for x in t)
True

并利用 any 执行的惰性求值。

当然,如果您的元组无特殊原因包含字符串,只需使用
(1, 2, 3) 并省略到 int 的转换。

关于python - 如何使用 Python 'in' 运算符检查我的列表/元组是否包含每个整数 0、1、2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35302215/

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