2017-01-11 3 views
0

У меня есть словарь, в котором значения являются строками, и мне нужно, чтобы они были списками. Так что я пытался сделать:Как преобразовать значения словаря из строки в список?

for v in dic: 
    v[1] = list(v[1]) 

Однако, возвращает ошибку, которая, индекс строки из диапазона

Весь мой код:

def agrupa_por_chave(lista): 
    dic = { 
     } 
    for t in lista: 
     if t[0] not in dic: 
      dic[t[0]] = t[1] 
     else: 
      dic[t[0]] += t[1] 
    for v in dic: 
     v[1] = list(v[1]) 
    return dic 
+0

Как 'lista' выглядит? –

+0

agrupa_por_chave ([('a', 'b'), ('a', 'c')]) –

+1

Добавить ожидаемый ввод и вывод – Harsha

ответ

3

Если вы хотите get dict со строковыми значениями, замененными списками:

>>> l = {1: 'abc', 2: 'def'} 

>>> l 
{1: 'abc', 
2: 'def'} 

>>> {k:list(v) for k,v in l.items()} 
{1: ['a', 'b', 'c'], 
2: ['d', 'e', 'f']} 
1

Как насчет:

dic = {k: [v] for k, v in dic.items()} 

или на основании разъяснений в комментарии:

dic = {k: list(v) for k, v in dic.items()} 
+0

не совсем. которые возвращают все значение в списке, и мне нужен список, содержащий каждый элемент значения –