迭代python dict的一个索引

我有一个名为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 = 0

for line in lines.keys():

    lines[line] = Line(l_key[i][0], l_key[i][1])

    i += 1


万千封印
浏览 214回答 2
2回答

江户川乱折腾

您不需要使用lines.keys(),因为for循环按键自动迭代:for line in lines:     lines[line] = Line(line[0], line[1])如您所见,这就是全部 - 您不需要任何索引 ( i) 键。

弑天下

像这样的东西:for i, line in enumerate(lines.keys()):         lines[line] = Line(l_key[i][0], l_key[i][1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python