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

Python字典推导式输出不符合预期的原因及修改方案

现象原因

你编写的是嵌套循环结构的字典推导式,执行逻辑如下:

  • 先遍历第一个列表拿到第一个k值0,接下来会完整遍历第二个v列表,先后给0赋值5、8、7,最终k=0对应的v是最后一次赋值的7
  • 同理处理k=1、k=2时,都会被最后一次遍历到的v值7覆盖,所以最终所有键的值都是7
修正方法

要实现两个列表同位置元素一一对应为键值对,不需要嵌套循环,使用zip()函数将两个列表按位置配对后做单层循环即可:

{k:v for k, v in zip([0,1,2], [5,8,7])}

如果需要适配两个列表长度不一致的场景,可以搭配itertools.zip_longest自定义缺省值补全逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:27:03