python 字典 一个key 多 value 遍历

在Python中,如果一个键对应多个值,你需要确保这些值被存储在一个容器类型(如列表或集合)中。你可以使用默认字典(collections.defaultdict)来简化这个过程。以下是一个示例代码:

复制代码
from collections import defaultdict
 
# 创建一个默认字典,其中值将被初始化为一个列表
dd = defaultdict(list)
 
# 假设有多个键对应相同的值
keys = ['key1', 'key1', 'key2', 'key2', 'key3']
values = [1, 2, 3, 4, 5]
 
# 将值分配给对应的键
for key, value in zip(keys, values):
    dd[key].append(value)
 
# 遍历默认字典
for key, value_list in dd.items():
    print(f"Key: {key}, Values: {value_list}")

结果:

Key: key1, Values: [1, 2]

Key: key2, Values: [3, 4]

Key: key3, Values: [5]

如果你不想使用defaultdict,也可以手动检查键是否存在并初始化列表:

复制代码
# 创建一个普通字典
d = {}
 
# 假设有多个键对应相同的值
keys = ['key1', 'key1', 'key2', 'key2', 'key3']
values = [1, 2, 3, 4, 5]
 
# 将值分配给对应的键
for key, value in zip(keys, values):
    if key not in d:
        d[key] = [value]
    else:
        d[key].append(value)
 
# 遍历普通字典
for key, value_list in d.items():
    print(f"Key: {key}, Values: {value_list}")

这段代码的输出与使用defaultdict的示例相同。

相关推荐
网安-轩逸10 小时前
回归测试原则:确保软件质量的基石
自动化测试·软件测试·python
Mr_Xuhhh10 小时前
YAML相关
开发语言·python
阿巴~阿巴~10 小时前
JsonCpp:C++ JSON处理利器
linux·网络·c++·json·tcp·序列化和反序列化
咖啡の猫10 小时前
Python中的变量与数据类型
开发语言·python
ao_lang11 小时前
数据链路层
linux·服务器·网络
前端达人11 小时前
你的App消息推送为什么石沉大海?看Service Worker源码我终于懂了
java·开发语言
汤姆yu11 小时前
基于springboot的电子政务服务管理系统
开发语言·python
z***33511 小时前
【MySQL系列文章】Linux环境下安装部署MySQL
linux·mysql·adb
全栈师11 小时前
C#中控制权限的逻辑写法
开发语言·c#
S***q19211 小时前
Rust在系统工具中的内存安全给代码上了三道保险锁。但正是这种“编译期的严苛”,换来了运行时的安心。比如这段代码:
开发语言·后端·rust