文章目录
一、集合
集合的应用场景:关系运算、去重
1、定义集合
集合:可以包含多个元素,用逗号分隔
集合的元素遵循三个原则:
- 每个元素必须是不可变类型(可hash,可作为字典的key)
- 没有重复的元素
- 无序
注意:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值
2、创建集合
a = {1,2,3} #字典和集合都采用花括号表示,若有kv则为字典,否则为集合
#创建空集合:
a = {} #这句话默认创建空字典
a = set(a) #强转为集合
print(a)
#一般来说创建空集合都这样创建:
a = set()
3、优先掌握的操作
#基本属性
#1、长度len
#2、成员运算in和not in
#关系运算
#3、|合集
#4、&交集
#5、-差集
#6、^对称差集 两个集合各自独有部分的并集
#7、==
#8、父集:>,>=
#9、子集:<,<=
4、去重
(1)不可变类型去重
去重,无需保持原来的顺序:
l=['a','b',1,'a','a']
print(set(l)) #因为集合中不允许有重复的元素,所以直接变成集合即可去重。
去重需要保持原来的顺序:
l=[1,'a','b',1,'a']
#方法一:不用集合
l1=[]
for i in l:
if i not in l1:
l1.append(i)
print(l1)
#方法二:借助集合
l1=[]
s=set()
for i in l:
if i not in s: #不在s中的元素(去重)就追加到l1中去(保证顺序)
s.add(i)
l1.append(i)
print(l1)
(2)可变类型的去重
l=[
{'name':'egon','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'egon','age':20,'sex':'female'},
{'name':'egon','age':18,'sex':'male'},
{'name':'egon','age':18,'sex':'male'},
]
对上述可变类型去重,且顺序不变。
new_l=[]
for dic in l:
if dic not in new_l:
new_l.append(dic)
print(new_l)
二、数据类型分类与总结
1、按存值个数区分
只能存一个值(原子类型) | 数字、字符串 |
---|---|
可以存放多个值(容器类型) | 列表、元组、字典 |
2、按照访问方式区分
直接访问:只能通过变量名访问整个值 | 数字类型 |
---|---|
顺序访问:可以用索引访问整个值,索引代表顺序,又称序列 | 字符串、列表、元组 |
key访问:可以用key访问指定的值,又称映射类型 | 字典 |
3、按可变与不可变区分
可变类型 | 列表、字典 |
---|---|
不可变类型 | 数字、字符串、元组 |