У меня есть словарь Python lines
, который индексируется кортежами, такими как: ('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
Вот проблема,так как я хочу первую строку первого ключа lines
внутри class Line
, мне нужно индексировать l_key
с [i][0]
, и на первой итерации i=0
я получаю 'mid'
.
Затем на второй итерации i=1
, и я получаю 'south'
из l_key[1][0]
.
Я хотел бы знать, есть ли способ удалить i=0
и i+=1
изfor-loop и создать как-то такой же эффект?
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 раза для lines.keys()
и 3 для 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