字典

发布时间 2023-11-15 15:50:20作者: 我才是最帅的那个男人

一,字典定义

  字典(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没有要求.可以保存任意类型的数据
二,增加
 1 dic = {}
 2 dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组
 3 合进dict
 4 dic['age'] = 18
 5 print(dic)
 6 # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
 7 dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.
 8 dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会
 9 起作⽤
10 print(dic)

三,删除

1 ret = dic.pop("jay")
2 print(ret)
3 del dic["jay"]
4 print(dic)
5 # 随机删除.
6 ret = dic.popitem()
7 # 清空字典中的所有内容
8 dic.clear()

四,修改

1 dic = {"id": 123, "name": 'sylar', "age": 18}
2 dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
3 dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存key, 则新增.
4 print(dic)
5 print(dic1)

五,查询

1 print(dic['name'])
2 # print(dic['sylar']) # 报错
3 print(dic.get("ok"))
4 print(dic.get("sylar")) # None,如果没有的话,返回值会是None
5 print(dic.get("sylar", "⽜B")) # 可以定义返回值,比如⽜B

六,其他操作

 1 dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
 2 print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不⽤管它是什么.当
 3 成list来⽤就⾏
 4 for key in dic.keys():
 5  print(key)
 6 print(dic.values()) # dict_values([123, 'sylar', 18, '科⽐']) ⼀样. 也当
 7 list来⽤
 8 for value in dic.values():
 9  print(value)
10 print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',
11 18), ('ok', '科⽐')]) 这个东⻄也是list. 只不过list中装的是tuple
12 for key, value in dic.items(): # ?? 这个是解构
13  print(key, value)