python数据类型-集合/字典

集合 set 无序性 唯一性(不重复)可变

创建:

se=set() #注意:创建空的集合要用set(),se={} 创建的字典
se = set('abc') =》{'a', 'b', 'c'} #参数是需要可迭代对象
se = set([1,2]) =》{1, 2} # 可以理解列表为转换为集合set
se =set((1,2)) =>{1, 2}
se ={1,2,2,3} ==>>{1, 2, 3} #注意唯一性
se = {1,[2,3]} #error 不能是可变类型,违背唯一性,可以是字符串或者元组
se = set([1,[2,3]]) #error
se = set([1,'abc']) => {1, 'abc'}
se = set([1,(2,3)]) =>{1, (2, 3)}

集合的运算

se1 = {1,2,3,4}
se2 = {3,4,5,6}

并集

se1 | se2 => {1, 2, 3, 4, 5, 6} #去重,将2个集合合并


image.png

交集

se1 & se2 => {3, 4} #取2个集合重复的部分


image.png

差集

se1 - se2 => {1, 2} #前一个集合去除2集合中重复的部分
se2 - se1 => {5, 6}


image.png

与非集

se1^se2 => {1, 2, 5, 6} #取2集合各自独有部分合在一起


image.png

集合set的常用方法

se1.add('abc') =>{1, (2, 3), 'abc'} #不可变,字符串,元组都可以作为参数
se1.add([1,2]) #error ,不能是可变的

se.clear() #清除集合数据

se.update() #添加多个元素,注意与上面add方法区别,add作为整体加到集合中,而update则元素迭代加进去;
se.update([1,2]) => {1, 2}
se.update('abc') => {1, 2, 'a', 'c', 'b'}
se.update((3,4)) => {1, 2, 3, 4, 'a', 'c', 'b'}
se.remove(3) #指定元素值移除
se.pop() #随机弹出

集合取值,转成列表

li = list(se)

字典 dict key:唯一性,无序性,可变,重复会被重新赋值

定义

dic1=dict(name='llp') =》{'name': 'llp'} #name要符合变量命名规则,括号里赋值方式,名字=对象,不要引号
dic = {'name':'llp','age':18,'sex':'boy'}

字典取值,修改

dic['name'] =>'llp' #利用键取对应值
dic['age']=21 #利用重复会覆盖旧值性达到修改作用;
dic['school']='hunanxuexiao' #dic[key]=value #key存在则修改值,没有则添加

字典方法

di.fromkeys(['a','b','c']) #用给定的键建立新的字典
dic.get('name') #取值,键存在则返回对应值
dic.get('school') #如果不存在,默认返回none,可以自定义
dic.get('school','没有这个属性') =》 '没有这个属性'

dic.items() #查看字典中的每一项
dic.keys() #查看字典中的每一个键
dic.values() #查看字典中每一个值

可以通过转换为列表list()来获取每一项内容

dic.pop('school') #指定键弹出对应的值
dic.popitem() #随机弹出某一项,没内容了还弹就会报错KeyError

dic.setdefault('a',23) #类似get,如果键存在,返回对应值,不存在则更新
dic1 = {'a':1,'c':666}
dic2 = {'a':0,'b':998}
dic2.update(dic1) => {'a': 1, 'b': 998, 'c': 666} #将一个字典的内容添加到另一个字典,旧的值被覆盖;
-------------------》》》》》》》------------------------------------》》》》》》》》

1.有两个列表 x = [1,2,3,'a','b','c'] y = ['a','b','c'] 找出x列表中在y 中也有的元素

x = [1,2,3,'a','b','c']
y = ['a','b','c']
se1 = set(x)
se2 = set(y)
print(se1 & se2)

2.新建一个字典,用3种方法往字典里面插入值;用 4 种方法取出values,用2种方法取出key

插入值:

dic = dict(name = 'llp')
dic['sex'] = 'boy' #有指定的键则修改,没有则增加对应键值
dic.setdefault('age',18) #
dic.update({'school':'xuexiao'})

取出values###

1.values方法

lis = list(dic.values())
print(lis[:])

2.get方法 取值,键存在则返回对应值,如果不存在,默认返回none,可以自定义

lis2 = []
lis2.append(dic.get('name'))
lis2.append(dic.get('sex'))
lis2.append(dic.get('age'))
lis2.append(dic.get('school'))
print(lis2)

lis3 = list([dic.get('name'),dic.get('sex'),dic.get('age'),dic.get('school')])
print(lis3)

3.setdefault方法 类似get,如果键存在,返回对应值,不存在则更新

lis4 = list([dic.setdefault('name'),dic.setdefault('sex'),dic.setdefault('age'),dic.setdefault('school')])
print(lis4)

4. 利用key

lis5 = list([dic['name'],dic['sex'],dic['age'],dic['school']])
print(lis5)

取出key##

print(list(dic)) #将字典转换为list,则每个元素就是key
print(list(dic.keys()))
list(di.items())[0][0]

3.定义我们学过的每种数据类型,并且注明,哪些是可变,哪些是不可变的.

数值类型:int float bool complex

s=str() #字符串
lis = list() #列表
tu =tuple() #元组
se = set() #集合
dic = dict() #字典

可变对象:list set dict,数值类型(int float bool complex)

不可变对象: str tuple

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容