day05 字典

---恢复内容开始---

今日主要内容
认识字典
  成对的保存数据。 以key:value的形式保存
  用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开

  dic = {}

  字典中的key是不能重复的。 存储是依靠着key来计算的
  字典是使用hash算法计算key的哈希值. 使用哈希值来存储数据,即按照hash顺序表顺序保存数据

  哈希算法得到的是一个唯一的数字(可能是正数, 可能是负数, 很大或者很小)
  哈希算法是无序的,不能进行切片

  字典中的key必须是可哈希的, 不可变的就是可哈希的

  不可变: str, tuple,  int, bool
  可变的: list, dict, set

  字典的value没有类型要求。
增删改查
1. 增加
  dic[key] = value   #key 如果重复,将会修改原来的的value


  setdefault(key, value)  

    流程:1. 先判断key 是否存在, 如果存在则不执行新增, 如果不存在则新增

       2.根据你给的key 把value 查询出来

2.删除
  pop(key)   # 指定某个key 进行删除
  popitem()   # 随机删除
  del dic[key]   
  clear()
3.修改
  dic[key] = value
  dic1.update(dict2)

4. 查询
  dic[key]    #可能会报错  如果key不存在 KeyError:

  dic.get(key)    #当key不存在的时候不会报错。 默认返回None, 可以设定其他

  dic.setdefault()
常见操作
  keys()     #key的集合

  dic.keys()     返回内容像列表,但不是列表  可以迭代

  values()    # value的集合

  dic.values()     同上  
  items() 键值对的集合(key,value)

  dic.items()     返回键值对  

# 遍历字典的最好的方案
# for k, v in dic.items():       # item是元组 (key, value)
# print(k, v)         # 直接拿到key和value
 
  元组  可以进行解包
  a, b, c = (1, 2, 3) # 解构, 解包

  a = 10
  b = 20
  a, b = b, a    

  for k, v in dic.items():
  k, v     # unpack   解包(解构)
字典的迭代

直接循环字典拿到的是key

  for k in dic:
    print(k)
    print(dic[k])
字典的嵌套
    例子:汪峰

---恢复内容结束---

今日主要内容
认识字典
  成对的保存数据。 以key:value的形式保存
  用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开

  dic = {}

  字典中的key是不能重复的。 存储是依靠着key来计算的
  字典是使用hash算法计算key的哈希值. 使用哈希值来存储数据,即按照hash顺序表顺序保存数据

  哈希算法得到的是一个唯一的数字(可能是正数, 可能是负数, 很大或者很小)
  哈希算法是无序的,不能进行切片

  字典中的key必须是可哈希的, 不可变的就是可哈希的

  不可变: str, tuple,  int, bool
  可变的: list, dict, set

  字典的value没有类型要求。
增删改查
1. 增加
  dic[key] = value   #key 如果重复,将会修改原来的的value
  setdefault(key, value)
2.删除
  pop(key)   # 指定某个key 进行删除
  popitem()   # 随机删除
  del dic[key]  
  clear()
3.修改
  dic[key] = value
  dic1.update(dict2)

4. 查询
  dic[key] 可能会报错
  dic.get(key)
  dic.setdefault()
常见操作
  keys() key的集合
  values() value的集合
  items() 键值对的集合(key,value)

  a = 10
  b = 20
  a, b = b, a    

  for k, v in dic.items():
  k, v     # unpack   解包
字典的迭代
  for k in dic:
  k
  dic[k]
字典的嵌套
    例子:汪峰

posted @ 2018-10-23 16:56  维C_先生  阅读(108)  评论(0编辑  收藏  举报