You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效将字典键值对拼接为指定格式的单一列表?

字典键与对应列表元素拼接的高效实现方法

给定字典:

myDict = {'red': [1, 2], 'blue': [3, 4]}

需要生成格式为 ['red_1', 'red_2', 'blue_3', 'blue_4'] 的单一列表,以下是几种高效实现方式,其中嵌套列表推导式是最推荐的方案:

1. 嵌套列表推导式(最优选择)

这是Python中性能最优、代码最简洁的实现方式,底层由C优化,比手动循环+append高效得多:

myDict = {'red': [1, 2], 'blue': [3, 4]}
result = [f"{key}_{num}" for key, nums in myDict.items() for num in nums]
print(result)  # 输出: ['red_1', 'red_2', 'blue_3', 'blue_4']

这里使用Python3.6+引入的f-string进行字符串拼接,它的性能优于传统的str.format()或+拼接方式,代码可读性也更强。

2. 生成器表达式转列表

如果处理超大字典,想先以惰性方式生成元素再转列表,可使用生成器表达式:

result = list(f"{key}_{num}" for key, nums in myDict.items() for num in nums)

这种方式和列表推导式性能接近,但生成器本身不会提前占用内存,适合内存敏感场景。

3. itertools.chain 处理超大数据集

对于极端大的字典,可借助itertools.chain来扁平化生成元素,避免一次性创建中间列表:

from itertools import chain

result = list(chain.from_iterable((f"{key}_{num}" for num in nums) for key, nums in myDict.items()))

这种方式在处理海量数据时内存效率更高,因为它不会为每个键的元素创建临时列表。

性能对比

在常规场景下,嵌套列表推导式的速度最快;f-string的拼接效率显著高于其他字符串拼接方法。如果对内存占用有严格要求,可选择生成器表达式或itertools.chain方案。

内容的提问来源于stack exchange,提问作者djc55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:40:00