字典

字典 dict
什么是字典:
  1. 字典是一种可变的容器,可以存储任意类型的数据
  2. 字典中的每个数据都是用"键"(key) 进行索引的,而不象序列,可以用整数下标进行索引
  3. 字典的数据没有先后关系,字典的存储是无序的
  4. 字典中的数据是以键-值(key-value)对 的形式进行存储的
  5. 字典的键不能重复,且只能用不可变类型作为字典的键


字典的字面值表示方法:
  以大括号,花括号{} 括起来, 以冒号(:) 分隔键-值对, 各键值对之间用逗号分隔开
创建空字典:
  d = {}  # d绑定空字典


创建非空字典:
  d = {"name": "weimingze", "age": 35}
  d = {True: "真值", False: "假值"}
  d = {"class1": ["老魏", "张某某", "李某某"]}
  d = {(2008, 8, 8): "北京奥运会纪念日"}
  d = {"a": 1, "b": 2, "a": 1.1}


字典的值可以为任意类型:
  bool, str, int, float, complex, tuple, list, dict ,以及后面要学到的 集合,函数,类对象....
示例:
  d = {'a': tuple(range(10))}


dict 的构造(创建)函数
  dict()     生成一个空的字典,等同于 {}
  dict(iterable)   用可迭代对象初始化一个字典
  dict(**kwargs)   关键字参数形式生成一个字典


示例:
  d = dict()
  d = dict([("name", "weimingze"), ("age", 35)])
  # 关键字传参生成一个字典
  d = dict(name="weimingze", age=35)


  L = [(1, 2), (3, 4), 'AB', [5, 6]]
  d = dict(L)  # {1: 2, 3: 4, 5: 6, 'A': 'B'}


可变类型(不能充当字典的键):
  列表,字典,集合set,字节数组(bytearray,后面会讲)


字典的访问:
  字典的键索引
    用[]访问字典内的成员
  语法:
    字典[键]
示例:
  d = {"name": 'tarena', 'age': 20}
  print("姓名:", d['name'], "年龄:", d['age'])


字典的特点:
  添加,删除,查找速度快


添加和修改元素
  字典[键] = 值
示例:
  d = {}
  d["name"] = "tarena"  # 创建新的键值对
  d['age'] = 20         # 创建新的键值对
  d['age'] = 21         # 修改age键所对应的值
说明:
  字典的键索引赋值时:
     1. 键不存在,创建键,并绑定键对应的值
     2. 键存在,修改键绑定的值


del 语句
  可以用来删除字典的键-值对
语法:
  del 字典[键]
示例:
  d = {"name": "tarena", "age": 20}
  del d['age']


in /not in运算符:
  1. 可以用in运算符来判断一个键是否存在于字典中,如果存在则返回True, 否则返回False
  2. not in 与 in 的返回值相反
示例:
  d = {"name": "tarena", "age": 20}
  "name" in d  # 返回True
  20 in d      # 返回False


字典的迭代访问:
  字典是可迭代对象, 字典只能对键进行迭代
示例:
  d = {"name": "tarena", "age": 20}
  for x in d:
      print(x)


可以用于字典的内建(built-in)函数:
  len(x)  返回键值对的个数
  max(x)  返回键的最大值
  min(x)  返回键的最小值
  sum(x)  返回键的和
  any(x)  真值测试,只对键测试
  all(x)  真值测试,对键测试


字典的方法(method)
D代表字典对象
D.clear()   清空字典
D.pop(key)  移除键,同时返回此键所对应的值的引用关系
D.copy()    返回字典D的副本,只复制一层(浅拷贝)
D.update(D2)将字典D2合并在D中,如果键相同,则此键的值取D2的值作为新值
D.get(key, default)  返回键key所对应的值,如果没有此键,则返回default
D.keys()   返回可迭代的dict_keys集合对象
D.values() 返回可迭代对dict_values值对象
D.items()  返回可迭代的dict_items对象


示例:
  d = {1: "one", 2: "two", 3: "three"}
  for x in d:
     print(x)  #  键值对元组




字典推导式 dict comprehesion


作用:
  用可迭代对象生成一个新的字典
语法:
  {键表达式 : 值表达式 
      for 变量列表 in 可迭代对象 [if 真值表达式]}
  注:
    [] 的内容代表可省略
示例:
  # 生成一个字典, 键为数值(1~10), 值为数字的平方
  d = {x : x**2 for x in range(1, 11)}


  L = ["tarena", "xiaozhang", "xiaowei"]
  # 字符串作为键,字符串长度作为值:
  d = {x : len(x) for x in L}


字典推导式嵌套
  嵌套方式与列表推导式相同


语法:
  {键表达式 : 值表达式 
      for 变量列表 in 可迭代对象 [if 真值表达式]
          for 变量列表 in 可迭代对象 [if 真值表达式]
  }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值