内置数据结构(变量类型)
- list
- set
- dict
- tuple
set(集合)- (一堆确定的无序的唯一数据)
s = set()
print(type(s))
print(s)
# 此时,大括号里一定要有值,否则定义出的是一个dict
s = {1,2,3,4}
<class 'set'>
set()
集合的特征
- 集合内数据无序,即无法使用索引和切片
- 集合内部数据元素具有唯一性,可以用来排除重复数据
- 集合内的数据,str,int,float,tuple,内部只能放置可哈希数据
创建set集合
自动过滤重复元素
s1 = {1,'A', 1, (2, 3)}
print(s1) # {1, (2, 3), 'A'}
使用set函数
l1 = [1,2,3,4] # list
s1 = set(l1)
print(type(s1)) #<class 'set'>
print(si) # {1, 2, 3, 4}
只存储key,不存储value
s1 = set({'Zhangsan':18, 'Wangwu':20})
print(s1) # {'Zhangsan', 'Wangwu'}
增删元素
- set元素不能是列表,因为列表是可变的
- set元素不能是字典, 因为字典是可变的
s1 = {1,2,3,4}
s1.add(5)
print(s1) # {1, 2, 3, 4, 5}
s1.add((2,3))
print(s1) # {1, 2, 3, 4, 5, (2, 3)}
s1.add([66,55]) # 会报错
s1.add({"Tom":100}) # 会报错
插入整个list,tuple 字符串, 打破插入
s1 = {1,2,3,4,5}
s1.update([6,7])
s1.update((8,9))
s1.update("Amy")
print(s1)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'm', 'A', 'y'} 无序
删除对应元素
s1 = {1,2,3,4,5}
s1.remove(3)
print(s1) # {1, 2, 4, 5} OK