Python 字典dict常用方法

111 阅读1分钟

1、创建字典

  • dict()创建空字典或从可迭代对象转换
empty_dict = dict()  # {}
from_list = dict([('a', 1), ('b', 2)])  # {'a': 1, 'b': 2}
from_kwargs = dict(a=1, b=2)  # {'a': 1, 'b': 2}

2、访问元素

  • dict[key]: 通过key获取值,key不存在时抛出keyError
  • dict.get(key, default):安全获取值,key不存在时返回默认值(默认None)
d = {'a': 1}
d.get('a')  # 1
d.get('b', 0)  # 0(键不存在时返回默认值)
  • dict.setdefault(key, default):获取值,若key不存在则设置默认值并返回【有点反常识】
d.setdefault('b', 2)  # 2,d 变为 {'a': 1, 'b': 2}

3、修改与更新

  • dict[key] = value: 添加或修改key, value
  • dict.update(other): 合并另一个字典或者可迭代对象
### 第一种
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1)  # 输出:{'a': 1, 'b': 3, 'c': 4}
### 第二种
dict1 = {'a': 1}
dict1.update([('b', 2), ('c', 3)])
print(dict1)  # 输出:{'a': 1, 'b': 2, 'c': 3}
### 第三种
dict1 = {'a': 1}
dict1.update(b=2, c=3)
print(dict1)  # 输出:{'a': 1, 'b': 2, 'c': 3}
  • dict.pop(key, default)删除key并放回值,key不存在时返回默认值
d.pop('b')  # 3,d 变为 {'a': 1, 'c': 4}

4、检查与判断

  • key in dict:检查key是否存在
  • dict.keys()返回key的视图
  • dict.values()返回value的视图
  • dict.items()返回key/value的视图

5、复制与清空

  • dict.copy():浅复制字典
copy_d = d.copy()  # {'a': 1}
  • dict.clear()清空字典
d.clear()  # {}

6、其他方法

  • len(dict): 返回key/value数量
  • dict.fromkeys(iterable, value):创建新字典,以可迭代对象的元素为key,统一值
dict.fromkeys(['a', 'b'], 0)  # {'a': 0, 'b': 0}

7、常见操作

  • 遍历字典
d = {'a': 1, 'b': 2}

# 遍历键
for key in d.keys():
    print(key)  # 'a', 'b'

# 遍历值
for value in d.values():
    print(value)  # 1, 2

# 遍历键值对
for key, value in d.items():
    print(key, value)  # 'a' 1, 'b' 2
  • 合并字典
d1 = {'a': 1}
d2 = {'b': 2}

# Python 3.9+
merged = d1 | d2  # {'a': 1, 'b': 2}

# Python 3.5+
merged = {**d1, **d2}  # {'a': 1, 'b': 2}