字典{}
1. 字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
2. 增删改查
字典的增加:
dic[key] = value #强制增加
dic = {'num': '1', 'sum': '2'} dic['key_1'] = 'value_1' print(dic)
输出:{'num': '1', 'sum': '2', 'key_1': 'value_1'}
dic.setdefault(key,value) #如果键在字典中存在不进行任何操作,否则就添加
dic = {'num': '1', 'sum': '2'} dic.setdefault('key_2', 'value_2') print(dic)
输出:{'num': '1', 'sum': '2', 'key_2': 'value_2'}
字典的删除:
dic.pop(key) # 有返回值 返回的是被删除value
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} i = dic.pop('sum') print(dic) print(i)
输出:{'num': '1', 'key_2': 'value_2'}
2
del dic[key] #通过键删除对应的值
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} del dic['num'] print(dic)
输出:{'sum': '2', 'key_2': 'value_2'}
dic.popitem() #随机删除;python3.6以上默认删除最后一位
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} dic.popitem() print(dic)
输出:{'num': '1', 'sum': '2'}
dic.clear() #清空字典
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} dic.clear() print(dic)
输出:{}
字典的修改:
dic[key] = value #通过键修改对应的值
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} dic['num'] = '2' print(dic)
输出:{'num': '2', 'sum': '2', 'key_2': 'value_2'}
dic.update(字典) #通过字典更新dic
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} dic_1 = {'num': '2', '亚索': '托儿索'} dic.update(dic_1) print(dic)
输出:{'num': '2', 'sum': '2', 'key_2': 'value_2', '亚索': '托儿索'} #dic的'num'的值被dic_1更新并更新dic没有的键值对
字典的查询:
dic.get(key,提示信息) #通过字典的键查询对应的值,如果没有找到,返回提示信息,默认返回None
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} print(dic.get('num', '没有对应的输入'))
输出:1
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
print(dic.get('nm', '没有对应的输入'))
输出:没有对应的输入
dic[key] #通过字典的键查询对应的值,如果没有找到,报错
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} print(dic['num'])
输出:1
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
print(dic['nm'])
输出:
Traceback (most recent call last):
File "C:/Users/PycharmProjects/测试.py", line 27, in <module>
print(dic['nm'])
KeyError: 'nm'
for 循环 #默认获取字典的键
#第一种 循环输出所有的key dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} for key in dic: print(key)
输出:k1,k2,k3
# 方法二 循环输出所有的key dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} for key in dic.keys(): print(key)
输出:k1,k2,k3
# 循环输出所有的value for key in dic.values(): print(key) # v1,v2,[11,22,33]
输出:v1,v2,[11,22,33]
# 方法一 循环输出所有的key和value dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} for key in dic.items(): print(key) # ('k1', 'v1'),('k2', 'v2'),('k3', [11, 22, 33]) 输出:('k1', 'v1'),('k2', 'v2'),('k3', [11, 22, 33])
# 方法二 循环输出所有的key和value dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} for key,value in dic.items(): print(key,value)
输出:# 'k1' "v1", "k2" "v2", "k3" [11,22,33]
dic.setdefault(key,提示信息) #通过字典的键查询对应的值,如果没有找到,返回提示信息,默认返回None
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} print(dic.setdefault('num', '没有对应的输入'))
输出:1
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
print(dic.setdefault('nm', '没有对应的输入'))
输出:
没有对应的输入
3.字典的其他操作:
dic.keys() # 获取到所有的键存在一个高仿的列表中
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'}
print(dic.keys())
输出:dict_keys(['num', 'sum', 'key_2'])
dic.values() #获取到所有的值存在一个高仿的列表中
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} print(dic.values())
输出:dict_values(['1', '2', 'value_2'])
dic.items() #获取到所有的键值对已元祖的形式存在一个高仿的列表中
dic = {'num': '1', 'sum': '2', 'key_2': 'value_2'} print(dic.items())
输出:dict_items([('num', '1'), ('sum', '2'), ('key_2', 'value_2')])
解构:
a,b = 1, 2 #输出a = 1,b = 2
a,b = (1,2) #输出a = 1,b = 2
a,b = [1,2] #输出a = 1,b = 2
4. 字典的嵌套:
dic = {
'name':'熊父',
'age':43,
'wife':{
'name':'熊母',
'age':39,
'salary':100000
},
'baby':[
{'name':'熊大','age':18},
{'name':'熊二','age':15},
]
}
dic['baby'][0]['age'] = 19
print(dic)