集合(set)
集合介绍
集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。是可变数据类型。
集合数据类型的核心是去重。
创建集合
- 用{}创建
集合使用{}框定元素,并以逗号分隔。其格式为:name={key1,key2,key3……}
- 用set()创建
使用set()方法来创建,括号中的为可迭代对象。
其格式为:name=set(iterable)
示例:
l = ["sword", "art", "online"]
s_1 = {"刀剑神域"}
s_2 = set(l)
print(s_1)
print(type(s_1))
print(s_2)
print(type(s_2))
# ==>{'刀剑神域'}
# ==><class 'set'>
# ==>{'art', 'sword', 'online'}
# ==><class 'set'>注意:
直接使用{}不添加元素创建的为空字典,而不是空集合。
创建空集合需要使用set()
集合添加元素
| 方法 | 功能 |
|---|---|
| set.add(key) | 将元素(key)添加到集合(set)中 |
示例:
l = ["sword", "art", "online"]
s = {"刀剑神域"}
s.add("sword")
print(s) # ==>{'sword', '刀剑神域'}
s.add(l)
print(s) # ==>报错TypeError: unhashable type: 'list'注意:
- 可以重复添加,但是会自动去重,所以无效果。
- 不能添加可变对象。如:列表
集合更新
| 方法 | 功能 |
|---|---|
| set.update() | 将另一个对象更新到已有的集合(set)中 |
示例:
l = ["art", "online", "sao"]
s_1 = {"刀剑神域"}
s_2 = {"sword", "art", "online"}
s_1.update(s_2)
print(s_1) # ==>{'art', 'sword', '刀剑神域', 'online'}
s_1.update(l)
print(s_1) # ==>{'art', 'sword', 'online', 'sao', '刀剑神域'}注意:
这一过程中同样会进行去重。
删除元素
| 方法 | 功能 |
|---|---|
| set.remove() | 删除指定元素 |
| set.pop() | 删除随机元素(无参数) |
示例:
s_1 = {"刀剑神域", "sword", "art", "online", "sao"}
s_1.remove("sao")
print(s_1) # ==>{'刀剑神域', 'online', 'art', 'sword'}
s_2 = {"刀剑神域", "sword", "art", "online", "sao"}
s_2.pop()
print(s_2) # ==>{'online', 'sao', 'art', 'sword'}注意:
集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。


Comments | NOTHING