Python set(集合)支持的数据类型主要有以下几种:
数字类型:
字符串类型:
布尔类型:
可迭代对象:
其他可迭代对象:
__iter__()
方法的对象,这意味着自定义对象也可以被添加到集合中,只要它们提供了迭代器协议。需要注意的是,集合中的元素必须是可哈希的(hashable),这意味着不可变的数据类型(如整数、浮点数、字符串和元组)可以作为集合的元素,而可变的数据类型(如列表和字典)则不能。
例如:
# 使用整数作为集合元素
s = {1, 2, 3}
# 使用字符串作为集合元素
s = {'apple', 'banana', 'cherry'}
# 使用元组作为集合元素
s = {(1, 2), (3, 4)}
# 尝试使用列表作为集合元素(会引发错误)
# s = {[1, 2], [3, 4]} # TypeError: unhashable type: 'list'
# 尝试使用字典的键作为集合元素(通常不推荐,但可以这样做)
# s = {d.keys()} # 但要注意,字典的键本身是无序的,且可能不是可哈希的