从字典列表提取键与多值的Pythonic实现方案咨询
代码优化方案
原代码核心冗余:嵌套遍历每个字典的键值对做条件判断完全没必要,已知每个字典的固定键名,直接按键取值即可。
优化后的写法优势:
- 消除不必要的循环和判断,执行效率更高
- 代码更简短,逻辑更直观
- 适配不同场景的扩展性需求
基础简化写法(消除嵌套循环)
Clk = [] av_50 = [] av_100 = [] for item in data_list: Clk.append(item["Clk"]) av_50.append(item["50%"]) av_100.append(item["100%"])
标准Pythonic写法(列表推导式)
输出和原代码完全一致,是最常用的简洁写法:
Clk = [item["Clk"] for item in data_list] av_50 = [item["50%"] for item in data_list] av_100 = [item["100%"] for item in data_list]
可扩展写法(适配后续新增提取键的场景)
如果后续需要提取更多键值,不需要重复写推导式,仅维护键名列表即可:
# 新增需要提取的键直接追加到该列表即可 target_keys = ["Clk", "50%", "100%"] # 批量提取并转成列表类型,和原输出格式完全一致 Clk, av_50, av_100 = [list(col) for col in zip(*(item[k] for k in target_keys) for item in data_list)]
所有优化逻辑均未修改原有取值的字符串类型,完全兼容你现有的后续处理流程。
内容的提问来源于stack exchange,提问作者Windy71
相关产品推荐
相关产品推荐

