Python基础(三)—字典和集合
in python基础 with 0 comment

Python基础(三)—字典和集合

in python基础 with 0 comment

字典<Dictionary>

字典是一种可变容器模型,且可存储任意类型对象。每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

   d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

循环遍历

字典排序

对生成的字典的结果按照key或者value进行排序,主要用到的方法就是python的内置函数sorted()。sorted()函数的作用是对所有可迭代的对象进行排序操作的函数。

    sorted(iterable, cmp=None, key=None, reverse=False) 
    """
      iterable:是可迭代的数据类型。
      cmp:是用于比较的函数,将key指定的关键字通过该函数规定的比较规则进行比较。有点类似java中的Comparable抽象类中的compareTo()方法。传递两个参数,例如f(a,b),指定a和b的逻辑比较规则,结果返回正数、负数或者零来分别表示大于、小于和等于。
      key:用于进行比较的数据。
      reverse:排序规则,默认是True降序,或者设置为False来升序。
    """

字典API

序号函数描述
1len(dict)计算字典元素个数,即键的总数。
2str(dict)输出字典,以可打印的字符串表示。
3type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。
序号函数描述
1popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)。
2pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
3radiansdict.clear()删除字典内所有元素
4radiansdict.copy()返回一个字典的浅复制
5radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
6radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
7key in dict如果键在字典dict里返回true,否则返回false
8radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
9radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表
10radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
11radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
12radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表

集合set

集合(set)是一个无序的不重复元素序列。(可以用作去重)

s.add( x ),如果x存在则不做操作。
s.update( x ),参数可以是列表,元组,字典等。

  tmpset = set('123')
  tmp = ['aa', 'bb']
  # tmpset.add(listtmp)  # 报错TypeError: unhashable type: 'list'
  tmpset.update(tmp)  # 不报错,添加列表时,所有item均添加
  print(tmpset)  # 每次输出结果均不一致

  tmp = ('cc', 'dd')
  tmpset.update(tmp)  # 添加元组时,所有item均添加
  print(tmpset)  # 每次输出结果均不一致

  tmp = {4: 'ee', 5: 'ff'}
  tmpset.update(tmp)  # 添加元组时,所有键值添加、item不添加
  print(tmpset)  # 每次输出结果均不一致

  """
      {'3', 'aa', '2', 'bb', '1'}
      {'3', 'aa', 'cc', '2', 'bb', '1', 'dd'}
      {'3', 'aa', 'cc', 4, 5, '2', 'bb', '1', 'dd'}
  """

s.remove( x ),将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
s.discard( x ),移除集合中的元素,且如果元素不存在,不会发生错误
s.pop() ,随机删除集合中的一个元素。在交互模式下,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

  >>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
  >>> thisset.pop()
  'Facebook'
  >>> print(thisset) 
  {'Google', 'Taobao', 'Runoob'}

s.clear(),清空集合。

内置方法

集合内置方法完整列表

序号方法描述
1add()为集合添加元素
2update()为集合添加元素,不报错,可以添加列表、元组、字典等
3clear()移除集合中的所有元素
4copy()拷贝一个集合
5pop()随机移除元素
6remove()移除指定元素
7difference()返回多个集合的差集
8difference_update()移除集合中的元素,该元素在指定的集合也存在。
9discard()删除集合中指定的元素
10intersection()返回集合的交集
11intersection_update()删除集合中的元素,该元素在指定的集合中不存在。
12isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
13issubset()判断指定集合是否为该方法参数集合的子集。
14issuperset()判断该方法的参数集合是否为指定集合的子集
15symmetric_difference()返回两个集合中不重复的元素集合。
16symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
17union()返回两个集合的并集
Responses