鱼C论坛

 找回密码
 立即注册
查看: 1183|回复: 6

如何将多个列表添加到一个字典里

[复制链接]
发表于 2020-3-9 13:59:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 fineconey 于 2020-3-9 14:05 编辑

如何将多个列表添加到一个字典里,每个列表代表同一个属性.
就像这样

name=["name1","name2","name3","name4","name5"]
sex=["男","女","女","女","男"]
age=[12,25,52,18,88]
income=[4000,5000,8500,6556,200]

zidian={}

想实现下,知道会用到循环,但是写不出来.谢谢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-9 14:07:40 | 显示全部楼层
你想实现什么效果??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 14:50:24 | 显示全部楼层
zidian={n:(s, a, i) for n, s, a, i in zip(name, sex, age, income)}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 15:48:23 | 显示全部楼层

非常感谢,如果我想实现类似的效果呢?

name1={sex:"男",
       age:12,
       income:4000
       }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 15:50:20 | 显示全部楼层
你想要的结果应是字典数组吧
name = ["name1","name2","name3","name4","name5"]
sex = ["男","女","女","女","男"]
age = [12,25,52,18,88]
income = [4000,5000,8500,6556,200]

def zipToDictList(x,y,z,t):
        return {'name': x, 'sex': y, 'age': z, 'income': t}
res = map(zipToDictList, name, sex, age, income)

print(list(res))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 15:56:07 | 显示全部楼层
fineconey 发表于 2020-3-9 15:48
非常感谢,如果我想实现类似的效果呢?
for each in range(1, 6):
    globals()['name' + str(each)] = {'sex': sex[each - 1], 'age': age[each - 1], 'income': income[each - 1]}
>>> name1
{'sex': '男', 'age': 12, 'income': 4000}
>>> name2
{'sex': '女', 'age': 25, 'income': 5000}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 16:44:56 | 显示全部楼层
再改一下
for each in range(5):
    globals()[name[each]] = {'sex': sex[each], 'age': age[each], 'income': income[each]}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-10 00:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表