day6---字典,集合内置方法
字典
========================字典(dict)基本方法===========================
用途:
定义方式:通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔
key:一定是一个不可变类型
value:可以是任意类型
字典的三种定义方式·:
1、*****
d1 = {'name':'egon','age':84}
2、*****
d2 = dict({'name':'egon'})
3、zip : 了解即可
l1 = ['name',"age"]
l2 = ['egon',18]
z1 = zip(l1,l2)
print(dict(z1))
常用方法:
1、优先掌握的 1、按照key:value映射关系取值(可存可取)
2、成员运算in,not in # 默认判断key
3、len() # 获取当前字典中键值对的个数
-
d1 = {'name':'egon', 'age': 73}
print(d1['name']) 根据key取值
print(d1['age'])
d1['name'] = 'tank' 根据key换对应的值
d1['gender'] = 'male'
print(d1) 添加新的键值对
print('egon' in d1) 更换了name的值后判断egon是否在字典中。 -
get( ) : 获取指定key的值,如果值不存在·,默认返回None,可以通过第二个参数修改默认返回的内容
print(d1.get('gender'))
None
print(d1.get('gender','male'))
male -
keys、values、items
print(d1.keys()) # 返回所有的key
print(d1.values()) # 返回所有的值
print(d1.items()) # 返回所有的键值对,返回值是列表套元组,每一个键值对都是存在元组
也可以用for循环提取
for key in d1.keys():
print(key)
for value in d1.values():
print(value)
for key,value in d1.items():
print(key,value)
key,value = ("name",'age')
name egon
age 73 -
pop:删除 : 指定key进行删除,有返回值,返回为对应的value
a = d1.pop('name')
print(d1)
print(a)
{'age': 73}
egon -
popitem() ,随机弹出一个键值对,有返回值,返回只是一个元组
d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}
s1 = d1.popitem()
print(s1)
print(type(s1))
('a', '1')
<class 'tuple'> -
update : 用新字典替换旧字典
d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}
d1.update({"b":'2'})
print(d1)
d1.update({'name':'tank'})
print(d1)
{'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'}
{'name': 'tank', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'} -
fromkeys : 生产一个新字典, 第一个参数(列表),它会以第一个参数中各个元素为key,以第二个参数为值,组成一个新字典
print(dict.fromkeys([1,2,3],'ke'))
{1: 'ke', 2: 'ke', 3: 'ke'} -
setdefault :key不存在新增键值对,有返回值,返回新增value,key存在返回对应的value
d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}
print(d1.setdefault('name',))
print(d1.setdefault('nameb', 123))
print(d1)
egon
123 #有key的话返回对应的值。没有的话会在字典内添加新的键值对
{'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'nameb': 123}=========================类型总结==========================
有序or无序 : 无序
可变or不可变 :可变类型
存一个值or存多个值 : 存多个值
集合
========================集合基本方法===========================
用途: 去重、关系运算
定义方式: 通过大括号存储数据,每个元素通过逗号分隔定义空集合,必须使用set()来定义
l1 = [] #列表
s1 = "" #字符串
d1 = {} #字典
ss1 = set() #集合
常用方法:
合集:|
交集:&
差集:-
对称差集:^
-
集合中不可能出现两个相同的元素
ython_student = {'egon', 'jason', 'tank', 'owen', 'egon'}
linux_student = {'frank', 'alex', 'egon'}
go_student = {'egon'}
print(python_student)
>>:{'tank', 'egon', 'jason', 'owen'}
print(python_student | linux_student)
>>:{'tank', 'egon', 'jason', 'owen', 'frank', 'alex'}
print(python_student & linux_student)
>>:{'egon'}
print(python_student - linux_student)
>>:{'tank', 'jason', 'owen'}
print(linux_student - python_student)
>>:{'frank', 'alex'}
print(python_student ^ linux_student)
>>:{'tank', 'jason', 'owen', 'alex', 'frank'}
print(python_student > go_student)
>>:True
print(python_student < linux_student)
>>:Falsel1 = [1, 2, 3, 1, 2, 9, 1, 5, 6, 7]
print(l1)
s1 = set(l1) #把l1变成集合
print(s1)
print(type(s1)) #打印他的类型
l2 = list(s1) #转换成列表
print(l2)
print(type(l2))
[1, 2, 3, 1, 2, 9, 1, 5, 6, 7]
{1, 2, 3, 5, 6, 7, 9}
<class 'set'>
[1, 2, 3, 5, 6, 7, 9]
<class 'list'> -
可以用for循环来看里面的值
=========================类型总结==========================
有序or无序 : 无序
可变or不可变 : 可变,
可以删除,添加,不可以更改存