您不能将列表添加到集合中,因为列表是可变的,这意味着您可以在将列表添加到集合后更改列表的内容。
但是,您可以将元组添加到集合中,因为您不能更改元组的内容:
>>> a.add(('f', 'g'))>>> print aset(['a', 'c', 'b', 'e', 'd', ('f', 'g')])编辑 :某些解释:文档将a定义
set为 不同的可哈希对象的无序集合。
这些对象必须是可哈希化的,因此,与每次执行这些操作时都要查看每个单独的元素相比,查找,添加和删除元素可以更快地完成。Wikipedia文章中说明了使用的特定算法。在effbot.org上说明了Python的哈希算法,并且
__hash__在python参考中提供了pythons函数。
一些事实:
- 集合元素 以及 字典键 必须是可哈希的
- 一些不可散列的数据类型:
list
:tuple
改用set
:frozenset
改用dict
:没有官方对应文件,但有一些 食谱
- 默认情况下,对象实例是可哈希的,每个实例都有唯一的哈希。您可以按照python参考中的说明覆盖此行为。



