Python字典中的键映射多个值的方法(列表或者集合)

  • Post category:Python

Python字典是一种以键值对形式存储数据的数据结构,其中每个键都必须是唯一的。但是,有时我们需要将一个键映射到多个值。在这种情况下,我们可以使用列表或集合来存储这些值,并将其作为字典的值来存储。以下是具体的方法和示例说明:

  1. 利用默认字典(collections模块)

使用默认字典(defaultdict)可以方便地将键映射到值列表或集合中。默认字典在创建时要求提供一个默认的值类型,如list或set。这样,如果字典中不存在某个键,则会自动生成一个对应的默认值。

示例:

from collections import defaultdict

d = defaultdict(list)  # 创建一个键映射到列表的默认字典

d['key1'].append('value1') # 将键 'key1' 映射到列表里的 'value1'
d['key1'].append('value2') # 将键 'key1' 映射到列表里的 'value2'
d['key2'].append('value3') # 将键 'key2' 映射到列表里的 'value3'

print(d) # {'key1': ['value1', 'value2'], 'key2': ['value3']}
  1. 利用字典与集合

另一种方法是利用字典与集合来实现key映射到多个值的情况。这种方法需要先判断字典中是否存在某个键,如果存在则将值添加到对应的集合中,否则创建一个新的集合并将其添加到字典中。

示例:

d = {} # 创建一个空字典

d.setdefault('key1', set()).add('value1') # 判断字典中是否存在 'key1',如果存在则添加到对应集合,否则创建一个新的集合并添加到字典中
d.setdefault('key1', set()).add('value2')
d.setdefault('key2', set()).add('value3')

print(d) # {'key1': {'value1', 'value2'}, 'key2': {'value3'}}

以上是 Python 字典中的键映射多个值的方法(列表或者集合)的完整攻略,以上两种方法都能解决此类问题,具体哪种方法使用取决于个人的需要和偏好。