【发布时间】:2019-04-24 04:39:51
【问题描述】:
我有一个名为lines的python字典,它是由元组索引的,例如:('mid', 'north')、('south', 'mid')和('south', 'north')。
lines = {('mid', 'north'): None,
('south', 'mid'): None,
('south', 'north'): None,
}
我创建了一个变量(l_key) 来根据lines dict 的键生成元组。
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
这是问题所在,因为我想要class Line 内lines 的第一个键的第一个字符串,我必须用[i][0] 索引l_key,并且在第一次迭代i=0 时,我得到@ 987654336@.
然后在第二次迭代i=1,我从l_key[1][0] 得到'south'。
我想知道是否有办法从 for 循环中删除 i=0 和 i+=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])
如果我使用以上版本,lines.keys() 可能会运行 3 次,range(0, len(l_key) 可能会运行 3 次。所以 3x3=9 次...我需要在 lines.keys() 上运行这个 for 循环,并在每次迭代时增加 i 的值。
以下方法可行,但有更好的方法吗?:
i = 0
for line in lines.keys():
lines[line] = Line(l_key[i][0], l_key[i][1])
i += 1
【问题讨论】:
标签: python dictionary key iteration