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

迭代python dict的一个索引

迭代python dict的一个索引

万千封印 2021-08-24 16:46:13
我有一个名为Python字典lines,这是由元组,如索引:('mid', 'north'),('south', 'mid')和('south', 'north')。lines = {('mid', 'north'): None,         ('south', 'mid'): None,         ('south', 'north'): None,        }我创建了一个变量( l_key) 来从linesdict的键中生成元组。l_key = tuple(lines.keys())i = 0然后我通过lines.keys()以下方式迭代字典键:for line in lines.keys():    lines[line] = Line(l_key[i][0], l_key[i][1])    i += 1这是问题所在,因为我想的第一个关键的第一串lines里面class Line,我不得不指数l_key与[i][0],并且在第一次迭代i=0,我得到'mid'。然后在第二次迭代中i=1,我'south'从l_key[1][0].我想知道是否有办法从 for 循环中删除i=0andi+=1并以某种方式创建相同的效果?EG:for line in lines.keys() and i in range(0, len(l_key):    lines[line] = Line(l_key[i][0], l_key[i][1])如果我做以上版本,它可能会运行 3 次 forlines.keys()和 3 for range(0, len(l_key). 所以 3x3=9 次......我需要的是运行这个 for 循环lines.keys()并i在每次迭代时增加值。做下面的工作,但有更好的方法吗?:i = 0for line in lines.keys():    lines[line] = Line(l_key[i][0], l_key[i][1])    i += 1
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您不需要使用lines.keys(),因为for循环按键自动迭代:

for line in lines:
    lines[line] = Line(line[0], line[1])

如您所见,这就是全部 - 您不需要任何索引 ( i) 键。


查看完整回答
反对 回复 2021-08-24
?
弑天下

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

像这样的东西:

for i, line in enumerate(lines.keys()):
        lines[line] = Line(l_key[i][0], l_key[i][1])


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号