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

如何将含list.extend的字典遍历循环改写为单行字典推导式?

字典推导式改写方案

你的需求是将以下遍历字典的for循环改写为单行字典推导式:

my_dict={'i':([3,4,5,6]), 'j':[10,20,30,40]}

for key, value in my_dict.items():
    zeros=[0]*2  
    zeros.extend(value)
    my_dict[key] = zeros

你尝试的两种写法都无法得到预期结果,问题出在方法的返回值和操作逻辑上:

  • 第一种写法{key:([0]*2).extend(value) for key, value in my_dict.items()}:extend()是原地修改列表的方法,它的返回值是None,所以最终字典的所有值都会变成None。
  • 第二种写法{key:value.insert(0, [0,0]) for key, value in my_dict.items()}:insert()同样是原地修改列表的方法,返回None;而且这里是把[0,0]作为单个元素插入到列表开头,最终会得到[[0,0], 3,4,5,6]这类不符合预期的结构。

正确的字典推导式应该使用列表拼接来生成新列表,这样能直接得到目标结构:

my_dict = {key: [0]*2 + value for key, value in my_dict.items()}

运行后就能得到你期望的输出:

{'i': [0, 0, 3, 4, 5, 6], 'j': [0, 0, 10, 20, 30, 40]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:07:11