文章最后更新时间:2025年06月13日
前言
集合是Python中一种可变、无序的数据类型,元素唯一且不可重复,用花括号 {}
包裹元素(空集合用 set()
表示)。可视为“仅含键的字典”,常用于数据去重和集合运算。
创建集合
test = {'小明', '小红', '许刚不许刚', '校长', '小张'}
print(type(test)) # <class 'set'>
list2 = [2, 3, 22, 22, 22, 22, 88, 99]
set2 = set(list2) # 列表转集合(自动去重)
print(set2) # {2, 3, 22, 88, 99}
集合添加元素
list2 = [2, 3, 22, 22, 22, 22, 88, 99]
set2 = set(list2)
set2.add('2029') # 添加字符串
set2.add(2029) # 添加数字
print(set2) # {2, 3, 22, 88, 99, 2029, '2029'}
set2.add(('route', 'switch')) # 添加元组(不可变类型,允许)
print(set2) # 新增元素:('route', 'switch')
# set2.add([2003, 2389]) # 报错!列表是可变类型,不允许添加
# TypeError: unhashable type: 'list'
集合元素删除
test = {'小明', '小红', '许刚不许刚', '校长', '小张'}
test.discard('小明') # 删除存在元素
test.discard('小天') # 删除不存在元素(不报错)
print(test) # {'小红', '许刚不许刚', '校长', '小张'}
test.clear() # 清空集合
print(test) # set()(空集合用set()表示,避免与空字典{}混淆)
集合并集(union() / |)
test = {100, 200, 300, 500, 200}
test2 = {200, 500, 600, 200}
a = test.union(test2) # 方法1:union()
print(a) # {100, 200, 300, 500, 600}
a = test | test2 # 方法2:管道符|
print(a) # {100, 200, 300, 500, 600}
集合交集(intersection() / &)
test = {100, 200, 300, 500, 200}
test2 = {200, 500, 600, 200}
b = test.intersection(test2) # 方法1:intersection()
print(b) # {200, 500}
a = test & test2 # 方法2:&符号
print(a) # {200, 500}
集合生成式
a = {i*i for i in range(1, 10)} # 生成1-9的平方数集合
print(a) # {64, 1, 4, 36, 9, 16, 49, 81, 25}
print(type(a)) # <class 'set'>
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。