字典

字典

字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是
唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中.
这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的,
如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的。
那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址⽽规定的.
已知的可哈希(不可变)的数据类型: int, str, tuple, bool
不可哈希(可变)的数据类型: list, dict, set
语法 : {key1: value1, key2: value2....}
注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
# 合法
dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅哥', '美⼥'], (1, 2, 3): '毛毛'}
print(dic[123])
print(dic[True])
print(dic['id'])
print(dic['stu'])
print(dic[(1, 2, 3)])
# 不合法
# dic = {[1, 2, 3]: '周杰伦'} # list是可变的. 不能作为key
# dic = {{1: 2}: "哈哈哈"} # dict是可变的. 不能作为key
dic = {{1, 2, 3}: '呵呵呵'} # set是可变的, 不能作为key

dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的.

而hash表不是连续的. 所以不能进⾏切片⼯作. 它只能通过key来获取dict中的数据

一.字典的增删改查

dic[key] = value

dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加

可以通过key查询,没有这个key返回None

====================================================================

pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除
clear() 清空字典


======================================================================

dic[key] = value
dic.update(字典)

=======================================================================

get(key)
dic[key]
for 循环
setdefault(key)

=======================================================================

二.其他操作

keys 获取到所有的键存在一个高仿的列表中

values 获取到所有的值存在一个高仿的列表中

items 获取到所有的键值对已元祖的形式存在一个高仿的列表中

解构:

a,b = 1, 2

a,b = (1,2)

a,b = [1,2]

三.字典嵌套

dic = {
       'name':'小王',
       'age':43,
       'wife':{
           'name':'小章',
           'age':39,
           'salary':100000
        },
        'baby':[
           {'name':'熊大','age':18},
           {'name':'熊二','age':15},
        ]}
dic['baby'][0]['age'] = 19
print(dic)
 
原文地址:https://www.cnblogs.com/zhao-ting/p/9401657.html