学习笔记-数据容器:set(集合)

一.集合的定义

1.语法
# 定义空集合
my_set = set()
print(my_set)
print(type(my_set))
# 注意: {} 不代表空集合,代表空字典

# 定义非空集合  无序
my_set = {'张三', '李四', '张三', '王五'}
print(my_set)
print(type(my_set))

# 集合支持嵌套
# 注意: 不支持嵌套可变类型(列表,集合) 因为可变类型的改变可能会导致集合中的元素重复,所以不支持可变类型
# set1 = {[10,20,30],[11,20,30]} # TypeError: unhashable type: 'list'
# set2 = {{10,20,30}} # IndentationError: unexpected indent
set3 = {(1, 2), (3, 4)}
print(set3)
注意: 不支持嵌套可变类型(列表,集合) 因为可变类型的改变可能会导致集合中的元素重复,所以不支持可变类型

二.常见操作

1.添加新元素

语法:集合.add(元素)

# 新增数据
name_set = {'张三', '李四', '张三', '王五'}
print(name_set)
# add : 添加新元素
name_set.add('赵六')
name_set.add('田七')
name_set.add('赵六')
print(name_set)
2.删除操作
# remove 移除
name_set.remove('张三')
print(name_set)
# pop :随机弹出
name_set.pop()
print(name_set)
# clear 清除
name_set.clear()
print(name_set)
# del
del name_set
# print(name_set) #NameError: name 'name_set' is not defined
3.修改操作
# 集合的修改操作
set1 ={10,20,30}
set2 ={10,50,70}
print(set1)
print(set2)
print('------------------------')
# 需求: 修改set1的内容,只保留和set2不同的数据
set1.difference_update(set2)
print(set1)
print(set2)
print('------------------------')
# 需求 :修改set1的内容,为set1和set2的并集
set1.update(set2)
print(set1)
print(set2)

print('------------------------')
# set1 和set2不同的数据,但不会改变set1
print(set1.difference(set2))
print(set1)


4.for循环遍历
name_set = {'张三', '李四', '张三', '王五', '赵六', '赵西'}
# 方法1
for e in name_set:
    if e.startswith('赵'):
        print(e)
# 方法2
for ee in name_set:
    if ee[0] == '赵':
        print(ee)

 注意: 因为集合没有索引,所以不能用while循环
5. 总结

在这里插入图片描述

三.集合的特点

  • 可以存储多个元素
  • 元素可以是不同类型数据 注意:不能是可变类型
  • 数据是无序的(没有下标索引)
  • 不支持数据重复(自动去重)
  • 支持数据修改,支持for循环
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值