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},重复元素会去重