文章目录
一、认识字典
1、字典dict
字典是容器型数据类型,将{}
作为容器的标志,里面多个键值对用逗号隔开
dict={'key1':'value1','key2':'value2','key3':'value3',....}
字典是可变的(支持增删改查);字典是无序的(不支持下标操作);顺序 不影响结果
元素的要求:字典的元素是键值对
键的要求:不可变类型的数据,键唯一
值的要求:没有要求
# 空字典
dict1={}
print(len(dict1),type(dict1))#0 <class 'dict'>
字典是无序的
print({'a':10,'b':20}=={'b':20,'a':10})# True
键是唯一的
print({'a':10,'b':20,'a':100})#{'a': 100, 'b': 20}
2、字典和列表的选择
如果同时保存的多个意义相同的数据选择列表;如果同时保存的多个意义不同的数据选择字典
二、字典的操作
1、查单个 获取字典某一个键对应的值
语法1
字典[键] 获取字典中指定键对应的值,如果键不存在则报错
print(dict1['体重'],dict1['name'])# 60 cindy
语法2
字典.get(键) 获取字典中指定键对应的值,如果键不存在返回None
字典.get(键,默认值) 获取字典中指定键对应的值,如果键不存在返回默认值
print(dict1.get('id')) # student
2、遍历
语法1 变量依次取到的是字典的键
for 变量 in 字典:
循环体
dict1={'name':'cindy','age':18,'id':'student','身高':1.7,'体重':60}
for i in dict1:
print(i)
语法2
for key,value in dict1.items():
print(key,value)
3、增删改
3.1 改 修改某个键对应的值
字典[键]=新值 将字典中指定键对应的值修改成指定的新值
dict1={'name':'cindy','age':18}
dict1['name']='lili'
print(dict) # {'name': 'lili', 'age': 18}
3.2 增 增加键值对
语法1
字典[键]=值 如果键不存在,就在字典中添加键值对;如果键存在,就改变值
dict1={'name':'cindy','age':18}
dict1['color']='blue'
print(dict1) # {'name': 'cindy', 'age': 18, 'color': 'blue'}
语法2
字典.setdefault(key,value) 在字典中添加键值对;如果键存在,不改变值
dict1={'name':'cindy','age':18}
dict1.setdefault('color','blue')
print(dict1) # {'name': 'cindy', 'age': 18, 'color': 'blue'}
3.3删除
del 字典[键] 删除字典中指定键对应的键值对
字典.pop(键) 取出字典中指定键值对
三、字典相关操作
字典不支持+、-、*、/、>、<、>=、<=
1、in 和 not in 判断字典中是否存在或者不存在指定的键
键 in 字典
键 not in 字典
2、相关函数
len(字典) 获取字典中键值对的数量
dict(字典) 将指定的数据转换成字典
能转换成字典的数据的要求:
a. 数据本省是一个序列
b. 序列中的元素必须是且只有两个元素的小序列
c. 小序列的第一个元素必须是不可变类型的数据
result=dict(['ab','dv','fd'])
print(result) # {'a': 'b', 'd': 'v', 'f': 'd'}
result=dict([('name','lili'),('age',10)])
print(result) # {'name': 'lili', 'age': 10}
注意 字典转换成列表,将字典所有的键作为列表的元素
dict1={'name':'cindy','age':18}
print(list(dict1)) # ['name', 'age']
3、相关方法
字典.xxx()
字典.clear() 清空字典
字典.copy() 拷贝字典,产生一个一模一样的新字典
字典.value() 获取字典所有的值
字典.key() 获取字典所有的键
字典.items() 将字典转换成一个序列,并且将每一个将只对转换成一个元组
字典1.update(字典2) 将字典2所有的键值对都添加到字典1
d1 = {'a': 10, 'b': 20}
d2 = {'x': 100, 'y': 200}
d1.update(d2)
print(d1) #{'a': 10, 'b': 20, 'x': 100, 'y': 200}
元组是不可变的列表 列表中和可变性无关的内容元组全部支持
元组:(数据1, 数据2, 数据3,…)