Как я могу выполнить итерацию и упорядочить вложенный список как значение словаря в python? - PullRequest
2 голосов
/ 01 августа 2020

У меня есть такой словарь:

dict =  {'x': [(['a'], ['b'], ['c'], ['d'], ['e'], ['f'])],'y': [(['a'], ['b'], ['c'], ['d'], ['e'], ['f'])]}

Я хочу перебирать вложенные списки и добавлять число в список. Результат должен быть похож на словарь ниже:

res = {'x': [(['a',1], ['b',2], ['c',3], ['d',4], ['e',5], ['f',6])]}

Как я могу добавлять числа во вложенный список?

Ответы [ 2 ]

3 голосов
/ 01 августа 2020
>>> dct =  {'x': [(['a'], ['b'], ['c'], ['d'], ['e'], ['f'])]}
>>> {k:[tuple([c for c in l]+[i+1] for i,l in enumerate(t)) for t in v ] for k,v in dct.items()}
{'x': [(['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5], ['f', 6])]}

2 голосов
/ 01 августа 2020

Это делает то, что вы хотите:

_dict =  {'x': [(['a'], ['b'], ['c'], ['d'], ['e'], ['f'])],'y': [(['a'], ['b'], ['c'], ['d'], ['e'], ['f'])]}
for item in _dict:
    for index, _list in enumerate(_dict[item][0]):
        _list.append(index + 1)

print(_dict)
# {'x': [(['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5], ['f', 6])], 'y': [(['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5], ['f', 6])]}
...