06 Python - 集合基础

集合

1.什么是集合?(set)
集合是容器型数据类型,将{}作为容器的标志,里面多个元素用逗号隔开: {元素1, 元素2, 元素3, …}
集合是可变的(支持增删改); 集合是无序的
集合中元素是不可变并且唯一的
2.空集合

empty = set()  # {} 是空字典

3.非空集合

set1 = {1, 23, 34}
set2 = {(1, 2), 3, 4}
# set3 = {[1, 2], 3, 4}    # 列表不能作为集合的元素
set4 = {1, 2, 3, 1, 4, 1}
print(set4)    # {1, 2, 3, 4}
print({1, 2, 3} == {2, 3, 1})   # True (说明集合无序)

4.集合中元素的增删改查
a. 查 - 集合没有办法直接获取单个元素,只能遍历

for 变量 in 集合:
    循环体
# 变量取到的就是集合中的每个元素

b. 增
集合.add(元素) - 在集合中添加指定元素
集合.update(序列) - 将序列中的元素全部添加到集合

nums.add(100)
print(nums)   # {34, 100, 23, 89, 90}

nums.update('abc')
print(nums)   # {34, 100, 'c', 'b', 23, 89, 90, 'a'}

nums = set()
nums.update({'a': 10, 'b': 20})
print(nums)    # {'a', 'b'}

c. 删
集合.remove(元素) - 删除集合中指定的元素(元素不存在会报错)
集合.discard(元素) - 删除集合中指定的元素(元素不存在不会报错)

nums = {10, 89, 76, 90, 34}
# nums.remove(10)
nums.discard(10)
print(nums)
# nums.remove(100)  # 报错
nums.discard(100)   # 不报错

d.改 - 集合无法修改元素

5.数学集合运算
python中的集合支持数学集合运算:&(求交集)、|(求并集)、-(求差集)、对称差集(^)、>/<(判断是否是真子集)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8, 9}

a. 交集: 求两个集合的公共部分

print(set1 & set2)    # {4, 5}

b. 并集:两个集合合并成一个集合

print(set1 | set2)    # {1, 2, 3, 4, 5, 6, 7, 8, 9}

c. 差集:集合1 - 集合2 集合1中除了集合2剩余的部分

print(set1 - set2)   # {1, 2, 3}
print(set2 - set1)   # {8, 9, 6, 7}

d.对称差集:去掉两个集合公共的部分剩下的部分

print(set1 ^ set2)   # {1, 2, 3, 6, 7, 8, 9}

e.真子集
集合1 > 集合2 - 判断集合2是否是集合1的真子集
集合1 < 集合2 - 判断集合1是否是集合2的真子集

print({100, 200, 300, 400} > {10, 20})   # False
print({1, 10, 20} > {10, 20})    # True
print({10, 20} > {10, 20})       # False
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值