字典
dict. 以 {} 表示, 每一项用逗号隔开, 内部元素用 key: value 的形式来保存数据
例子: dict.{"JJ":"林俊杰","Jay":"周杰伦"}
查询效率非常高, 通过 key 来查找元素 内部使用 key 来计算一个内存地址 (暂时) , hash 算法 . 要求 key 必须是不可变的数据类型 (key 必须是课 hash 的数据类型)
字典没有切片
字典的增删改查
新增
- # 第一种方法 直接增加
- dic = {
- }
- dic["巴萨"] = "梅西"
- dic["尤文"] = "C 罗"
- print(dic)
- # 第二种方法
- dic = {
- }
- dic.setdefault("切尔西", "阿扎尔") #setfault 设置默认值
- dic.setdefault("切尔西", "德罗巴")
- print(dic)
- # 打印结果是 {
- "切尔西":"阿扎尔"
- } 如果存在了 key, 不会替换掉原来的 如果 value 没有值 打印结果是 None
删除
- dic = {
- "巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C 罗", "巴黎":"内马尔"
- }
- dic.pop("皇马") # 指定 key 删除 必须有一个参数
- dic.popitem() # 随机删除
- dic.clear() # 清空字典
- del dic["key"] # 删除
修改和查询
- # 修改
- dic = {
- "巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C 罗", "巴黎":"内马尔"
- }
- dic["key"] = "新 value" # 替换掉 key 所对应的旧 value
- dic2 = {
- "巴萨":"伊涅斯塔", "皇马":"拉莫斯", "曼城":"萨内"
- }
- dic.update(dic2) # update : 更新
- print(dic)
- # 打印结果为 {
- '巴萨': '伊涅斯塔', '皇马': '拉莫斯', '曼城': '萨内', '尤文': 'C 罗', '巴黎': '内马尔'
- }
- # 查询
- dic = {
- "巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C 罗", "巴黎":"内马尔"
- }
- print(dic["曼城"]) # 最直观, 直接用 key 当 key 不存在时会报错
- print(dic.get("皇马","value 不在这里") # 如果没有查询到 key 会打印出 "value 不在这里" 这句话. 如果没有第二个参数 返回 None .
- setdefault() # 1. 新增 ( 先看有没有可以, 如果有就过, 没有执行新增 ) 2. 根据 key 把值返回
字典的相关操作
- dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C 罗", "巴黎":"内马尔"}
- # 对字典的遍历
- print(dic.keys()) # 得到一个像列表却不是列表的东西 dict_keys(['巴萨', '皇马', '曼城', '尤文', '巴黎'])
- for key in dic.keys(): # 找到字典中的 key
- print(key) # 打印 key
- print(dic[key]) # 打印 value
- for key in dic: # 字典本身是一个可迭代对象, 可以直接进行 for 循环. 找到字典中的 key
- print(key)
- print(dic[key])
- for value in dic.values(): # 找到字典中的 value
- print(value) # 打印 value
- print(dic.items()) # 拿到的是 key 和 value item 意思是 项
- # 打印结果 : dict_items([('巴萨', '梅西'), ('皇马', '莫德里奇'), ('曼城', '萨内'), ('尤文', 'C 罗'), ('巴黎', '内马尔')])
- for item in dic.items():
- print(item) # 打印结果是元组
- ('巴萨', '梅西')
- ('皇马', '莫德里奇')
- ('曼城', '萨内')
- ('尤文', 'C 罗')
- ('巴黎', '内马尔')
- print(item[0],item[1])
巴萨 梅西
皇马 莫德里奇
曼城 萨内
尤文 C 罗
巴黎 内马尔
- # 注:
- a, b = (10, 20) # 解构 解包 前面变量的个数和后面解包的个一致
- print(a) # 结果 10
- print(b) # 结果 20
- # 根据解构 可将 for item in dic.items(): 简化成下面的形式
- for k, v in dic.items(): # 当需要遍历字典. 在操作中设计到 key 和 value 的时候.
- print(k)
- print(v)
来源: http://www.bubuko.com/infodetail-3086329.html