EleanorYe

导航

Python 字典dict相关知识

  1. 字典是无序的,多次print输出的结果不一样。
  2. 字典的key可以是数字、字符串、元组、布尔值(True为1,False为0,不可以和其他key值重复);列表和字典不能作为key。
  3. 字典的value可以是任何类型。
  4. 字典支持del方法删除。
  5. 字典支持for循环,是可迭代对象,不支持while循环。
  6. 输出字典所有的key:
    for item in info.keys():
             print(item)
  7.  输出字典所有的值:
    for item in info.values():
           print(item)
  8.  输出字典所有的键值对:
    for k, v in info.items():
         print(k, v)
  9. info.clear( )            | 清空字典
  10. info.copy( )            |浅拷贝
  11. dict.fromkeys( *args, **kwargs )           |这是一种静态方法@staticmethod。根据序列创建字典,并给其指定统一值。 像此类静态方法调用时,用类名.方法名就可以。
    前面带两个*时,表示这里可以用name=“…”的形式穿入参数,也可以直接传入字典。
    >>> new_dict = dict.fromkeys(['k1',123,'999'],123)
    >>> print(new_dict)
    {'k1': 123, 123: 123, '999': 123}
  12. info.get( )         |get能直接根据索引号来获取该索引号对应的值,和直接用info['k1']不同的是,当输入的索引号不存在时,info['K1']会报错,但是get会输出None,并且可以设置当索引号不存在时应该输出的默认值。
    >>> info = {'K1':123,'k2':890}
    >>> v = info.get('k1111',222)
    >>> print (v)
    222
  13. info.pop( )         |删除值并且得到删掉的值。
    >>> info = {'K1':123,'k2':890}
    >>> v = info.pop('K1')
    >>> print (info, v)
    ({'k2': 890}, 123)
  14. info.popitem( )      |此方法不带参数,是指随即删除字典里的一个键值对,并获取删掉的键值对的值。
    >>> info = {'K1':123,'k2':890}
    >>> k, v = info.popitem()
    >>> print(info, k, v)
    ({'K1': 123}, 'k2', 890)       #随机删掉了K2键值对
  15. info.setdefault( )      |当setdefault参数中设置的键在字典中存在时,不作修改,并且获得该键在字典中对应的值,当setdefault参数的键在字典中不存在时,则把setdefault设置的键值对添加到字典中,并且获得该键对应的值。
    >>> info = {'K1':123,'k2':890}
    >>> v = info.setdefault('k11111',666)      #这是当参数的键在字典中不存在时,结果把参数设置的键值对添加到了字典中,并且返回了该键对应的值。
    >>> print(info, v)
    ({'k2': 890, 'K1': 123, 'k11111': 666}, 666)
  16. info.update( )        |更新字典的内容,对原来存在的键覆盖其值,对原来不存在的键值对添加到字典中。
    >>> info = {'k1':123,'k2':890}
    >>> info.update({'k1': 11111,'k3':'hdjkdl'})    #这里参数传入的是一个字典
    >>> print(info)
    {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
    >>> info = {'k1':123,'k2':890}
    >>> info.update(k1=11111,k3='hdjkdl')           #或者也可以以这种方式传入参数和值
    >>> print(info)
    {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
  17. 字典默认for循环时,循环的是key值,不是value
    >>> dic = {'k1':'v1'}
    >>> 'k1' in dic        #键是True
    True
    >>> dic = {'k1':'v1'}
    >>> 'v1' in dic        #值是False
    False
  18. 布尔值
    转换为布尔值:bool( )
    布尔值为False的类型: None, " ", ( ), { }, 0  ,其他都为真

posted on 2018-12-17 18:02  EleanorYe  阅读(214)  评论(0编辑  收藏  举报