字典{}


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)

posted @ 2018-08-01 20:42  Virous1887  阅读(186)  评论(0编辑  收藏  举报