5、Python字典的操作

Python字典的操作

1、字典添加修改数据的方法

  • []处理法

    • 字符串,列表list[0] = 10,但是字典没有索引

    • dict[ ‘name’ ] = ‘david’

    • 添加或修改,根据key是否存在所决定

      In [1]: d= {'name': 'david'}
      In [2]: d['name'] = 'jason'
      In [3]: print(d)
      Out [1]: {'name': 'jason'}
      
  • 字典的内置函数update

    • 功能:添加新的字典,如新字典中有和原字典相同的key,则该key的value会被新字典的value覆盖

    • update的用法与功能

      用法:dict.update(new_dict) –该函数无返回值

      参数:new_dict:新的字典

      In [1]: default_dict = {}
      In [2]: new_dict = {'name': 'david'}
      In [3]: default_dict.update(new_dict)
      In [4]: print(default_dict)
      Out [1]: {'name': 'david'}
      
  • 字典的内置函数setdefault

    • 功能:获取某个key的value,如key不存在于字典中,将会添加key并将value设为默认值

    • 用法:dict.setdefault(key, value)

      参数:key:需要获取的key,value:如果key不存在,对应这个key存入字典的默认值

      In [1]: default_dict = {}
      In [2]: value = default_dict.setdefault('name', 'david')
      In [3]: print('dict:', default_dict, 'value:', value)
      Out [1]: dict: {'name': 'david'} value: david
      
  • 注意事项

    • 字典中没一个key一定是唯一的
    • 字典中的数据量没有限制
    • 字典中的value可以是任何python的内置数据类型的对象和自定义的对象

2、字典的keys函数

  • 功能:获取当前字典中所有的键(key)

  • 用法:dict.keys() –> 无需传参,返回一个key集合的伪列表

    In [1]: my_dict = {'name': 'david', 'age': '22'}
    In [2]: print(my_dict.keys())
    Out [1]: dict_keys(['name': 'age'])  -->不具备列表的所有功能
    
    In [1]: key_list = list(my_dict.keys())
    In [2]: print(key_list)
    Out [1]: ['name': 'age']
    

3、字典的values函数

  • 功能:获取当前字典中所有键值对中的值(value)

  • 用法:dict.values() –>无需传参,返回一个value集合的伪列表

    In [1]: my_dict = {'name': 'david', 'age': '22'}
    In [2]: print(my_dict.values())
    Out [1]: dict_values(['david', 22]) -->不具备列表的所有功能
    

4、字典key的获取

  • []的获取方法

    In [1]: my_dict = {'name': 'david', 'age': '22'}
    In [2]: name = my_dict['name']
    In [3]: print(name)
    Out [1]: david
    
  • 字典内置函数get获取方法

    • 功能:获取当前字典中指定key的value

    • 用法:dict.get(key,default=None)

      参数:key:需要获取value的key,default:key不存在则返回次默认值,默认是None,也可以自定义

      In [1]: my_dict = {'name': 'david', 'age': '22'}
      In [2]: name = my_dict.get('name')
      In [3]: print(name)
      Out [1]: david
      
  • []与get的区别

    • []如果获取的key不存在,则直接报错
    • get如果获取的key不存在,则返回默认值
    • 开发中优先使用get函数

5、字典的删除

  • clear函数的功能与用法

    • 功能:清空当前的字典中所有数据

    • 用法:dict.clear() –> 无参数,无返回值

      In [1]: my_dict = {'name': 'david', 'age': '22'}
      In [2]: my_dict.clear()
      In [3]: print(my_dict)
      Out [1]: {}
      
  • pop函数的功能与用法

    • 功能:删除字典中指定的key,并将结果返回,如果key不存在则报错

    • 用法:dict.pop(key) –>返回这个key对应的值(value)

      参数:key:希望被删掉的键

      In [1]: my_dict = {'name': 'david', 'age': '22'}
      In [2]: pop_value = my_dict.pop('age')
      In [3]: print('pop value:', pop_value, 'my_dict:', my_dict)
      Out [1]: pop value: 22 my_dict: {'name': 'david'}
      
  • del在字典中的用法

    In [1]: my_dict = {'name': 'david', 'age': '22'}
    In [2]: del my_dict['name']
    In [3]: print(my_dict)
    Out [1]: {'age': '22'}
    
    del my_dict
    print(my_dict) -->报错,整个字典对象已经被删除
    

6、字典的复制——copy函数

  • 功能:将当前字典复制一个新的字典

  • 用法:dict.copy() –>无参数,返回一个一模一样的内存地址不同的字典

    In [1]: old_dict = {'name': 'david', 'age': '22'}
    In [2]: new_dict = old_dict.copy()
    In [3]: print(id(new_dict) != id(old_dict))
    Out [1]: True
    

7、字典中的成员判断

  • in与not in在字典中的用法

    In [1]: test_dict = {'name': 'david'}
    In [2]: print('name' in test_dict)
    Out [1]: True
    In [3]: print('name' not in test_dict)
    Out [2]: False
    
  • 字典内置的get使用参考

    In [1]: In [1]: test_dict = {'name': 'david'}
    In [2]: print(bool(test_dict.get('name')))
    Out [1]: True
    

8、字典中的末尾删除函数——popitem

  • 功能:删除当前字典里末尾一组键值对并将其返回

  • 用法:dict.popitem() –> 无需传参,返回被删除的键值对,用元组包裹0索引是key,1索引是value

    In [1]: my_dict = {'name': 'david', 'age': '22'}
    In [2]: print(my_dict.popitem())
    Out [1]: ('age', '22')
    
  • 注意事项:如字典为空,则直接报错

9、所有数据类型与布尔值的关系

  • 每一种数据类型,自身的值都有表示True与False
  • not对于一切结果取反
数据类型 为True 为Flase
int 非0 0
float 非0.0 0.0
str len(str) != 0 len(str) == 0 即 ‘’
list len(list) != 0 len(list) == 0 即 []
tuple len(tuple) != 0 len(tuple) == 0 即 ()
dict len(dict) != 0 len(dict) == 即 {}
None not None None

转载请注明来源