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

Python中不使用for循环实现列表值到指定结构字典的赋值

实现方法

你可以通过以下两种不需要写显式for/while循环的方式实现完全一致的输出:

方案1:使用zip()+字典推导式

这是最简洁的写法:

groupVal = ["Staff 1","Staff 2"]
nameValue = ["ABC","XYZ"]

sdict = {
    "group": {
        item: {"name": "Hi " + name, "approval": "yes"}
        for item, name in zip(groupVal, nameValue)
    }
}

方案2:使用map()+dict()构造

如果不想用到任何推导式里的循环语法,可以用这个方案,全程无循环关键字:

groupVal = ["Staff 1","Staff 2"]
nameValue = ["ABC","XYZ"]

def gen_kv_pair(item, name):
    return (item, {"name": "Hi " + name, "approval": "yes"})

sdict = {"group": dict(map(gen_kv_pair, groupVal, nameValue))}

输出验证

两种方案运行后得到的sdict结果和你原有循环实现的结果完全相同:

{'group': {'Staff 1': {'name': 'Hi ABC', 'approval': 'yes'}, 'Staff 2': {'name': 'Hi XYZ', 'approval': 'yes'}}}

原理解释

  • zip(groupVal, nameValue)会将两个列表的对应位置元素两两配对,生成可迭代的元组序列,避免你手动通过索引取值
  • 两种方案都没有用到显式的循环语句,所有遍历逻辑由Python内置函数/语法底层实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:09:03