Python学习第三天之集合

柳三千

文章最后更新时间: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'>
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码