python dict扩展方法
时间: 2023-10-13 14:24:07 浏览: 149
python dict乱码如何解决
Python 字典(dict)是一种非常有用的数据类型,它提供了一种将键映射到值的方式。除了基本的字典操作,Python 还提供了一些扩展方法来操作字典。下面是一些常用的扩展方法:
1. setdefault(key, default=None)
如果字典中有这个键,返回对应的值;如果没有这个键,则设置这个键值对,并返回默认值。
```python
d = {'a': 1, 'b': 2}
print(d.setdefault('a', 3)) # 输出 1
print(d.setdefault('c', 3)) # 输出 3
print(d) # 输出 {'a': 1, 'b': 2, 'c': 3}
```
2. update([other])
将其他字典或键值对序列加入到当前字典中,如果有相同的键,则会覆盖原有的键值对。
```python
d = {'a': 1, 'b': 2}
d.update({'c': 3, 'd': 4})
print(d) # 输出 {'a': 1, 'b': 2, 'c': 3, 'd': 4}
```
3. pop(key[, default])
删除并返回指定键对应的值,如果不存在这个键,则返回默认值(如果提供了默认值),否则会抛出 KeyError。
```python
d = {'a': 1, 'b': 2}
print(d.pop('a')) # 输出 1
print(d.pop('c', 3)) # 输出 3
print(d) # 输出 {'b': 2}
```
4. popitem()
随机返回并删除字典中的一对键值对,如果字典为空,则会抛出 KeyError。
```python
d = {'a': 1, 'b': 2}
print(d.popitem()) # 输出 ('b', 2)
print(d) # 输出 {'a': 1}
```
5. fromkeys(seq[, value])
创建一个新字典,以序列 seq 中的元素作为键,值都设置为 value。
```python
seq = ['a', 'b', 'c']
d = dict.fromkeys(seq, 0)
print(d) # 输出 {'a': 0, 'b': 0, 'c': 0}
```
6. get(key[, default])
返回指定键的值,如果键不存在,则返回默认值(如果提供了默认值),否则返回 None。
```python
d = {'a': 1, 'b': 2}
print(d.get('a')) # 输出 1
print(d.get('c', 3)) # 输出 3
print(d.get('c')) # 输出 None
```
7. items()
返回一个包含所有字典项的列表,每个元素是一个 (key, value) 的元组。
```python
d = {'a': 1, 'b': 2}
print(d.items()) # 输出 dict_items([('a', 1), ('b', 2)])
```
8. keys()
返回一个包含所有键的列表。
```python
d = {'a': 1, 'b': 2}
print(d.keys()) # 输出 dict_keys(['a', 'b'])
```
9. values()
返回一个包含所有值的列表。
```python
d = {'a': 1, 'b': 2}
print(d.values()) # 输出 dict_values([1, 2])
```
阅读全文