当前位置:   article > 正文

python中字典与集合常用操作方法_字典与集合的常用操作

字典与集合的常用操作

一、字典

列表缺陷:若数据顺序发生变化,无法通过下标i(list[i])访问到变化数据

字典:数据以键值对形式出现,与数据顺序无关,不支持下标访问,无论顺序如何变化,均可用键名key查找数据

字典特点:符号为大括号、数据以键值对形式出现、各键值对间用逗号隔开

1.1 常见操作方法:增、删、改、查

  • 增加
    • 单个增加:字典序列[key] = 值    # 不存在则增加,存在则修改
    • 多个增加:dict1.update(dict2),将字典dict2的键值对更新至字典dict1,若key已存在,则覆盖原值
  • 删除
    • 删除指定键值对:del 字典序列[key]
    • 字典序列.popitem():返回并删除最后一对键值对,若为空,则报异常
    • 清空字典:字典序列.clear()
  • 修改:字典序列[key] = 值    # 若key存在则修改,否则新增
  • 查找
    • key值查找:字典序列[key],若key存在返回对应值,否则报错
    • get():字典序列.get(key,默认值),若key不存在则返回默认值,若默认值省略,则返回None
    • keys():以列表形式返回字典所有键
    • values():以列表形式返回字典所有值
    • items():以列表形式返回字典(键,值)元组数组

举例如下: 

  1. dict1 = {'id': 2, 'name': 'XX', 'age': 20} # 创建字典,键(key):值(value),简称k:v
  2. dict2 = {'name': 'YX', 'tel': 888, 'address': 'JXUST'}
  3. print('------------新增---------------')
  4. dict1['gender'] = '男' # 增加键值对'gender':'男'
  5. print(dict1)
  6. dict1.update(dict2) # 把字典dict2中的键值对更新至字典dict1中,若已存在则覆盖
  7. print(dict1)
  8. print('------------删除---------------')
  9. del dict1['id'] # 删除键名为id的键值对
  10. print(dict1)
  11. print(dict1.popitem(), dict1) # popitem()返回并删除最后一对键和值,若为空,则报异常
  12. # dict1.clear() # 清空字典
  13. print('------------修改---------------')
  14. dict1['gender'] = '女' # 修改键gender值为女
  15. print(dict1)
  16. print('------------查找---------------')
  17. print(dict1['age'])
  18. print(dict1.get('name'), dict1.get('weight', '体重未知!'), dict1.get('weight'))
  19. print(dict1.keys(), dict1.values(), dict1.items()) # 以列表形式获取字典所有键、所有值、所有(键,值)
  20. 输出:
  21. ------------新增---------------
  22. {'id': 2, 'name': 'XX', 'age': 20, 'gender': '男'}
  23. {'id': 2, 'name': 'YX', 'age': 20, 'gender': '男', 'tel': 888, 'address': 'JXUST'}
  24. ------------删除---------------
  25. {'name': 'YX', 'age': 20, 'gender': '男', 'tel': 888, 'address': 'JXUST'}
  26. ('address', 'JXUST') {'name': 'YX', 'age': 20, 'gender': '男', 'tel': 888}
  27. ------------修改---------------
  28. {'name': 'YX', 'age': 20, 'gender': '女', 'tel': 888}
  29. ------------查找---------------
  30. 20
  31. YX 体重未知! None
  32. dict_keys(['name', 'age', 'gender', 'tel']) dict_values(['YX', 20, '女', 888]) dict_items([('name', 'YX'), ('age', 20), ('gender', '女'), ('tel', 888)])

1.2 字典的循环遍历

  • 遍历字典的key:for k in 字典序列.keys():print(k)
  • 遍历字典的value:for v in 字典序列.values():print(v)
  • 遍历字典的键值对:for k,v in 字典序列.items():print(f'{k} = {v}')
  • 遍历字典的元素:for i in 字典序列.items():print(i)

举例如下:

  1. print('------------遍历---------------')
  2. print('-----键-----')
  3. for k in dict.keys(): # 遍历键key
  4. print(k)
  5. print('-----值-----')
  6. for v in dict.values(): # 遍历值value
  7. print(v)
  8. print('-----键值-----')
  9. for k,v in dict.items(): # 遍历键值对
  10. print(f'{k} = {v}')
  11. print('-----元素-----')
  12. for i in dict.items(): # 遍历元素
  13. print(i)
  14. 输出:
  15. ------------遍历---------------
  16. -----键-----
  17. name
  18. age
  19. gender
  20. tel
  21. -----值-----
  22. YX
  23. 20
  24. 888
  25. -----键值-----
  26. name = YX
  27. age = 20
  28. gender = 女
  29. tel = 888
  30. -----元素-----
  31. ('name', 'YX')
  32. ('age', 20)
  33. ('gender', '女')
  34. ('tel', 888)

二、集合

创建集合:使用{}或set(),空集合只能用set(),{}用来创建空字典

集合特点:可以去除重复数据,数据是无序的,故不支持下标

集合常见操作方法

2.1 增加

  • add():集合序列.add(数据) ,追加单个数据,由于集合有去重功能,若追加数据已存在,则不进行任何操作
  • update():集合序列.update(序列)   # 追加序列,序列可为列表、元组或字符串等

2.2 删除

  • remove():序列.remove(数据),删除集合中指定数据,若数据不存在则报错
  • discard():序列.discard(数据),删除集合中指定数据,若数据不存在不报错
  • pop():序列.pop(),随机删除集合中某个数据,并返回该数据

2.3 判断

  • in:判断数据在集合序列,若在为True,否则False
  • not in:判断数据不在集合序列,若不在为True,否则False
  • s1.issubset(s2):判断集合s1所有元素是否都包含在集合s2中,若在为True,否则False

举例如下: 

  1. print('------------集合------------')
  2. print('--------创建方式一--------')
  3. s1 = {'a', 'b', 2, 'a'}
  4. print(s1)
  5. s1.add('aa') # 追加单个数据
  6. print(s1)
  7. s1.update(('bb', 22)) # 追加元组序列
  8. print(s1)
  9. print('--------创建方式二--------')
  10. s2 = set('ab2a')
  11. print(s2)
  12. s2.update(['bb', 'cc', 22]) # 追加列表序列
  13. print(s2)
  14. s2.update('cdd') # 追加字符串序列
  15. print(s2)
  16. print('--------删除--------')
  17. s1.remove('a') # 删除a
  18. print(s1)
  19. s1.discard(2) # 删除2
  20. print(s1)
  21. print(s1.pop(), s1)
  22. print('--------判断--------')
  23. print('b' in s1, 'bb' not in s1, s1.issubset(s2))
  24. 输出:
  25. ------------集合------------
  26. --------创建方式一--------
  27. {'b', 2, 'a'}
  28. {'b', 2, 'aa', 'a'}
  29. {2, 'bb', 'b', 'a', 22, 'aa'}
  30. --------创建方式二--------
  31. {'b', '2', 'a'}
  32. {'2', 'bb', 'b', 'a', 22, 'cc'}
  33. {'2', 'c', 'bb', 'b', 'd', 'a', 22, 'cc'}
  34. --------删除--------
  35. {2, 'bb', 'b', 22, 'aa'}
  36. {'bb', 'b', 22, 'aa'}
  37. bb {'b', 22, 'aa'}
  38. --------判断--------
  39. True True False

导航:http://xqnav.top/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/490033
推荐阅读
相关标签
  

闽ICP备14008679号