简介
Python字典用来存储多个不同类型的数据,字典里面的数据以键值对的形式出现,字典数据和数据顺序没有关系,即可说明字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据
创建
形式:1.大括号 2.必须要有键值对 3.逗号隔开
dict1={'name':'jjb','age':20,'gender':'男'}
其中’name’ : 'jjb’为其中一个键值对
空字典:
dict2={};
dict3=dict();
字典常用操作
增(改)
常用格式:字典序列[key]=值
注意:如果key存在则修改key对应的值,不存在则在后面添加
dict1={'name':'jjb','age':20,'gender':'男'}
dict1['age']=18 #修改年龄
print(dict1)
dict1['feature']='帅' #添加特征
print(dict1)
#输出结果
#{'name': 'jjb', 'age': 18, 'gender': '男'}
#{'name': 'jjb', 'age': 18, 'gender': '男', 'feature': '帅'}
删
- del:删除字典或删除字典中指定的键值对
- clear:清空字典
dict1={'name':'jjb','age':20,'gender':'男'}
del dict1['age'] # 删除年龄
print(dict1)
dict1.clear() # 清空字典
print(dict1)
del dict1 # 删除字典,删除后该字典不存在
# 输出结果:
# {'name': 'jjb', 'gender': '男'}
# {}
查
- 利用key值
- get():用法:字典序列.get(key,默认值),如果当前查找key不存在,则返回第二个参数(默认值),如果省略第二个参数,则返回None
- keys:用法:字典序列.keys(),返回key列表(一个可迭代对象),可用于for循环遍历
- values:用法:字典序列.values(),返回值列表(一个可迭代对象),可用for循环遍历
- items:用法:字典序列.items(),返回列表元素为元组(一个可迭代对象),可用for循环遍历
dict1={'name':'jjb','age':20,'gender':'男'}
print(dict1['name']) #查找name值
# 输出结果:jjb
dict1={'name':'jjb','age':20,'gender':'男'}
print(dict1.get('age'))
print(dict1.get('feature','帅'))
#输出结果:
#20
#帅
print(dict1.keys()) #返回key值
# 输出结果:dict_keys(['name', 'age', 'gender'])
print(dict1.values()) #返回值列表
#输出结果:dict_values(['jjb', 20, '男'])
print(dict1.items()) #返回列表元素为元组
#输出结果:dict_items([('name', 'jjb'), ('age', 20), ('gender', '男')])
# 举一个for循环遍历的例子
for item in dict1.items():
print(item)
#输出结果:
# ('name', 'jjb')
# ('age', 20)
# ('gender', '男')
其余性质
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
- 键必须不可变,所以可以用数字,字符串或元组充当,不能用列表
dict1={'name':'jjb','age':20,'gender':'男','age':18}
print(dict1)
# 输出结果:
# {'name': 'jjb', 'age': 18, 'gender': '男'}
dict2={['name']:'jjb','age':18}
# 报错:
# TypeError: unhashable type: 'list'