3.6 Set(集合)

3.6.1 定义Set(集合)

由于集合中的元素时唯一的,一般用于元组或者列表中的元素去重,集合中默认去重。

  • set()定义:set_name = set(元素),元素为字符串/列表/元组/字典
  • 直接赋值:set_name = {元素, 元素, ...} ,元素只能为元组/字符串/数字(不可变类型)
# --------字符串
set_1 = set("123456")
print(set_1)  # 结果为:{'2', '6', '1', '4', '3', '5'},是无序的
# --------列表
set_2 = set([1, 2, 3, 4, 4, 5, 4, 1])
print(set_2)  # 结果为:{1, 2, 3, 4, 5},列表没变顺序且列表去重了
# --------元组
set_3 = set((1, 2, 3, 4, 5, 5))
print(set_3)  #结果为:{1, 2, 3, 4, 5},元组没变顺序
# --------字典
set_4 = set({
    "名字":Emily,
    "年龄":18
})  
print(set_4)  # 结果为:{'名字', '年龄'},只取了字典的键,没有取值
# --------用花括号创建集合
set_5 = {1, 2, 3, 4,(1, 2), "123"}
print(set_5)  # 结果为:{1, 2, 3, (1, 2), 4, '123'},用花括号时,元素类型不能为可变类型
# --------嵌套其他类型时,不能去重
set_6 = {1, 2, (1, 1, 2), "1212"}
print(set_6)  # 结果为:{1, 2, '1212', (1, 1, 2)},是无序的

3.6.2 集合添加元素与集合合并

  • add():往集合中添加元素,可以添加的元素类型为:数字、字符串、元组,格式为:set_name.add(元素)。
  • update():将集合合并,格式为:当前集合.update(合并进当前集合的元素或集合)。合并后,当前集合会变而update括号内集合内容不变。
# --------add()
set_7 = {1, 2, 3, 4}
set_7.add(5)
print(set_7)  # 结果为:{1, 2, 3, 4, 5}
print(set_7)  # 结果为:{1, 2, 3, 4, 5, 'Emily'}
set_7.add((1, 2, 3))
print(set_7)  # 结果为:{1, 2, 3, 4, 5, 'Emily', (1, 2, 3)}
# --------update()
set_8 = {1, 2, 3}
set_9 = {4, 5, 6}
set_8.update(set_9)
print(set_8)  # 结果为:{1, 2, 3, 4, 5, 6}

3.6.3 集合删除元素

  • remove():删除集合中的元素,如果元素存在直接删除,不存在程序会报错,格式为:set_name.remove(元素)
  • pop():随机删除集合中的个元素,如果没有要删除的元素,程序会报错,格式为:set_name.pop()
  • discard():如果元素存在,直接删除,元素不存在不做任何操作,格式为:set_name.discard(元素)
# --------remove()
set_10 = {"Python", "Hello", "Emily"}
set_10.remove("Hello")
print(set_10)  # 结果为:{'Emily', 'Python'}
# --------pop()
set_pop = {"Python", "Hello", "Emily"}
set_pop.pop()
print(set_pop)  # 结果为:{'Hello', 'Emily'}
# --------discard()
set_dis = {"Python", "Hello", "Emily"}
set_dis.discard("hhh")
print(set_dis)  # 结果为:{'Emily', 'Python', 'Hello'},不存在的元素不会报错

3.6.4 集合的交集和并集:

  • 交集:使用“&”符号连接多个集合,得到相同的元素。
  • 并集:使用“|”符号连接多个集合,得到集合中的全部元素,重复元素会去重。
set_11 = {1, 2, 3, 4, 5}
set_12 = {1, 2, 6, 7, 8}
set_13 = set_11 & set_12
print(set_13)  # 结果为:{1, 2}
set_14 = set_11 | set_12
print(set_14)  # 结果为:{1, 2, 3, 4, 5, 6, 7, 8},重复元素会去重
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头少女Emily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值