【发布时间】:2012-12-04 01:06:12
【问题描述】:
Python 集合有这些方法:
s.union(t) s | t new set with elements from both s and t
s.update(t) s |= t return set s with elements added from t
同样,还有这些:
s.intersection_update(t) s &= t return set s keeping only elements also found in t
s.intersection(t) s & t new set with elements common to s and t
等等,对于所有标准的关系代数运算。
所以...问题是,这里到底有什么区别?我看到它说 update() 版本返回 s 而不是新集合,但是如果我写 x = s.update(t),这是否意味着 id(x) == id(s)?它们现在是否引用同一个对象?
我的意思是,我真的不明白为什么要实现这两组方法。它似乎没有添加任何重要的功能。
【问题讨论】:
-
呸,我无意中阅读了过时的文档。
-
那在哪里? 2.7.3 sets documentation 不使用您引用的语言。
-
docs.python.org/2/library/sets.html -- 不幸的是,当你用谷歌搜索“python 集”时会出现这种情况。
-
啊,你找到了旧的
setsmodule;后来添加了set内置 type 来替换该模块。在顶部它声明 自 2.6 版起已弃用:内置的 set/frozenset 类型替换了此模块。 -
该模块的文档实际上也不正确。我检查了source code,
*_update()方法也返回 None。
标签: python set set-operations