gpt4 book ai didi

python - 列表成员的细节

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

Python(特别是 2.6.4)通常如何确定列表成员资格?我已经运行了一些测试来查看它的作用:

def main():
obj = fancy_obj(arg='C:\\')
needle = (50, obj)
haystack = [(50, fancy_obj(arg='C:\\')), (1, obj,), needle]

print (1, fancy_obj(arg='C:\\'),) in haystack
print needle in haystack

if __name__ == '__main__':
main()

产生:

False
True

这告诉我 Python 可能正在检查对象引用,这是有道理的。有没有我可以看的更明确的东西?

最佳答案

来自 (An Unofficial) Python Reference Wiki :

对于列表和元组类型,当且仅当存在索引 i 使得 x == y[i] 为真时,x in y 为真。

因此,在您的示例中,如果 fancy_obj 类将 arg 的值存储在一个实例变量中,并且要实现一个 __eq__ 方法如果被比较的两个 fancy_objs 具有相同的 arg 值则返回 True 然后 (1, fancy_obj(arg='C:\\'),) in haystack 将为真。

标准库引用的相关页面是:Built-in Types , 具体来说 5.6 Sequence Types

关于python - 列表成员的细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049651/

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