Python set(集合)支持的数据类型主要有以下几种:
-
数字类型:
- 整数(int)
- 浮点数(float)
-
字符串类型:
- 字符串(str)
-
布尔类型:
- 布尔值(bool)
-
可迭代对象:
- 列表(list)
- 元组(tuple)
- 集合(set)本身也可以作为可迭代对象,用于创建新的集合。
-
其他可迭代对象:
- 字典(dict)的键(keys)和值(values),但通常不推荐这样做,因为字典是无序的,而且键通常是不可哈希的。
- 任何实现了
__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()} # 但要注意,字典的键本身是无序的,且可能不是可哈希的