2015-02-12 3 views
-1

Я использовал код:Как обновить словарь в Python?

dict1={} 
f=open("Class1.txt") 
for line in iter(f): 
    line=line.split() 
    print(line) 
    dict1={(line[0]):(line[1])} 
    print (dict1) 

Я хочу, чтобы иметь возможность обновить список, а не заменить значения, которые находятся в нем, как этот код в настоящее время делает с помощью цикла. Я попытался использовать .update(), но он не сработал.

+1

Что вы подразумеваете под "обновлением списка"? Что в ваших глазах есть разница между «обновлением списка» и «заменой значений»? – L3viathan

+1

, который не является списком –

+0

Как насчет 'dict1.update ({line [0]: line [1]})'? – ozgur

ответ

2

код почти нормально ... Вам нужно только небольшое изменение

dict1[line[0]] = line[1] 
1

Пока не совсем ясно из вашего вопроса, я думаю, что с помощью collections.defaultdict будет делать то, что вы хотите (обновить список, связанный с каждым словарь):

from collections import defaultdict 

dict1=defaultdict(list) 
f=open("Class1.txt") 
for line in iter(f): 
    line=line.split() 
    print(line) 
    dict1[line[0]].append(line[1]) 
    print (dict1) 
+0

Я думаю, вы можете удалить 'iter (f)' и, возможно, использовать 'with' было бы лучше –

+0

@Padraic: Согласовано - оба могут/должны быть выполнены, но я не стал исправлять все и вносил минимальные изменения в Код OP, так как я не уверен, что вас спрашивают. – martineau

+0

Я согласен с defaultdict, это было первое, о чем я думал, когда увидел код, я просто не видел его итератора в итераторе! –

Смежные вопросы