为了账号安全,请及时绑定邮箱和手机立即绑定

如何索引子字典并创建嵌套的 for 循环

如何索引子字典并创建嵌套的 for 循环

慕侠2389804 2021-08-14 21:42:37
我有一个列表,如下所示:>> new_pd[:3][['PokedexNumber',  'Name',  'Type',  'Total',  'HP',  'Attack',  'Defense',  'SpecialAttack',  'SpecialDefense',  'Speed'], [1.0, 'Bulbasaur', 'GrassPoison', 318.0, 45.0, 49.0, 49.0, 65.0, 65.0, 45.0], [2.0, 'Ivysaur', 'GrassPoison', 405.0, 60.0, 62.0, 63.0, 80.0, 80.0, 60.0]]我要创建的内容如下:{1.0: {'Attack': 49.0,  'Defense': 49.0,  'HP': 45.0,  'Name': 'Bulbasaur',  'PokedexNumber': 1.0,  'SpecialAttack': 65.0,  'SpecialDefense': 65.0,  'Speed': 45.0,  'Total': 318.0,  'Type': 'GrassPoison'}, 2.0: {'Attack': 62.0,  'Defense': 63.0,  'HP': 60.0,  'Name': 'Ivysaur',所以从列表列表中,我想要一个大的嵌套字典。为了创建它,我用 Python 编写了以下代码:new_pd_keys = []for i in range(1, len(new_pd)):    new_pd_keys.append(new_pd[i][0]) 上面,我从第 1 列中获取所有键并将它们保存到名为new_pd_keys.然后使用以下代码分配每个键的值:for i in range(1,len(new_pd)):    new_pd_dict = {key:{'Attack':new_pd[i][5], 'Defense':new_pd[i][6], 'HP':new_pd[i][4],           'Name':new_pd[i][1], 'PokedexNumber':new_pd[i][0], 'SpecialAttack':new_pd[i][7],          'SpecialDefense':new_pd[i][8], 'Speed':new_pd[i][9], 'Total':new_pd[i][3],           'Type':new_pd[i][2]} for key in new_pd_keys }但我拥有的是我最后一行的属性。你可以看到下面的输出,它们都是一样的。{1.0: {'Attack': 110.0,  'Defense': 120.0,  'HP': 80.0,  'Name': 'Volcanion',  'PokedexNumber': 721.0,  'SpecialAttack': 130.0,  'SpecialDefense': 90.0,  'Speed': 70.0,  'Total': 600.0,  'Type': 'FireWater'}, 2.0: {'Attack': 110.0,  'Defense': 120.0,  'HP': 80.0,  'Name': 'Volcanion',  'PokedexNumber': 721.0,  'SpecialAttack': 130.0,  'SpecialDefense': 90.0,  'Speed': 70.0,  'Total': 600.0,  'Type': 'FireWater'},你能提出一种比我更好的方式来执行索引的方法吗?
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

new_thing = {q[0]: dict(zip(thing[0], q[1:])) for q in thing[1:]}


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信