第三章_元组字典集合 - 图1

第三章_元组字典集合

元组(tuple)

定义

与列表类似

  • 元素访问和索引位置等相同

    不同之处

  • 元素

    • 元组的元素不能修改
  • 创建

    • 元组使用小括号创建
      • tuple1 = (1,23,4,’sss’,[1,3])

        字典(dict)(映射类型)

        定义

        字典也叫键值对,是一种通过关键字引用的数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射类型。

        特点

  • 每个键与值用冒号隔开,每对用逗号,每对用逗号分割,整体放在花括号中{}

  • 键必须独一无二,但值不必
  • 无序
  • 值可以取任意数据类型,但必须是不可变的,如字符串,数或元组。

    d = {1:10,2:20,”a”:12,5:”hello”}

    d1 = dict(a=1,b=2,c=3)

  • a,b,c三个键,分别对应1,2,3

    d2 = dict([[‘a’,2],[5,’a4’],[‘hhh’,’rt’]])

  • ‘a’键对应2,5键对应’a4’,’hhh’键对应’rt’

    查值

    指定键的值

  • 字典名.get(键名)

    • 字典名.get(键名,返回默认值)
      • 当键名未赋值时候,则设置返回默认值。(当键不在字典中时返回设置的默认值,没设置则返回None)
  • 字典名[键名]

    获取字典的所有键值对

  • 字典名.items()

  • 获取所有键值对,每个键值对以集合形式包含(括号),整体为一个列表
    • [(键名1,键值1),(键名2,键值2),(键名3,键值3)……]
  • 注意:

    • python2.X版本中是数组
    • 但python3.X版本里返回的类型是dict_items,不是一个常规列表。不能直接操作返回值,需要通过转换成列表或其他形式进行操作

      获取字典所有key

  • 字典名.keys()

    • 返回一个内部数据类型dict_keys
    • 如果希望列表形式显示则通过list()
      • list(字典名.keys())
    • 注意:
      • python2.X版本中是数组
      • 但python3.X版本里返回的类型是dict_keys,不是一个列表。不能直接操作返回值,需要通过转换成列表或其他形式进行操作

        获取字典所有value的列表

  • 字典名.values()

    • 注意:
      • python2.X版本中是数组
      • 但python3.X版本里返回的类型是dict_values,不是一个列表。不能直接操作返回值,需要通过转换成列表或其他形式进行操作

        随机取出字典中的一个键值对,以元组形式返回,同时将该键值对从字典中删除

  • 字典名.popitem()

    修改值

    字典名[修改的键名] = 修改后的值

    增加值

    字典名[增加的键名] = 新增的值

    合并字典

    字典名1.update(字典名2)

    删除值

    删除指定键值对

  • del 字典名[键名]

  • 字典名.pop(键名,返回默认值)

    • 如果字典中存在键名则删除对应的键值对,不存在则返回设定的默认值

      清空字典,变空字典

  • 字典名.clear()

    删除字典

  • del 字典名

    排序字典

    按照键值大小返回键名的排序,默认升序

  • for k in sorted(字典名,key=d.getitem): print(k,d[k])

    倒序

    集合(set)

    定义

    特点

  • set是一个无序且不重复的元素集合

    • 集合的无序性,使得无法为集合创建索引或执行切片操作
  • 元素不可变

    • 字典和集合不能作为集合的元素
    • 集合成员可以做字典中的键。

      集合名 = {11,’a’,(4,1)}

      创建空集合只能用s = set(),因为s={}是空字典

      查找集合

      找a集合中存在,b集合中不存在的元素,返回新值

  • returnvalue = a.difference(b)

    过滤重复值

    set(a)

  • 通过set()过滤掉a中元素的重复值,同时使得a变为集合

  • 可将其他类型变为集合,同时元素去重

    添加集合的元素

    集合名.add(元素)

    删除集合的元素

    删除集合中最小的值

  • 集合名.pop()

    删除指定的元素

  • 集合名.remove(指定元素)

    • 指定元素存在集合中则移除,否则产生KeyError的异常
  • 集合名.discard(指定元素)

    删除所有数据项

  • 集合名.clear()

    • 移除集合中所有数据项

      取集合值

      集合类型的操作符

  • 取交集

    • S&T
      • 返回一个包括同时在集合S和T中元素的新集合
    • 返回的集合 = 集合a名.intersection(集合b名)
      • 将集合a和集合b的交集值返回
  • 取并集
    • S|T
      • 返回一个包含结合S和T中所有元素的新集合
    • 返回的集合 = 集合a名.union(集合b名)
      • 将集合a和集合b的并集值返回
  • 取差集
    • S-T
      • 返回一个包含在集合S中但不在集合T中元素的新集合
    • 集合a-集合b
  • 取补集
    • S^T
      • 返回一个包括集合S和T中非共同元素的新集合
  • 检查成员

    • x in s
      • x元素在s中则返回True,否则False
    • x not in s
      • x元素不在s中则返回True,否则False

        判断集合

        判断是否为交集

  • 集合a名.isdisjoint(集合b名)

    • false则集合a和集合b为交集

      判断是否为子集

  • 集合a名.issubset(集合b名)

    判断是否为父级

  • 集合a名.issuperset(集合b名)

    获取集合的大小(基数),元素个数

    用len()内建函数