2014-09-03 3 views
-1

У меня есть текстовый файл, как это:текста в словарь и распечатать несколько значений

key1: value1 value2 value 3 
key2: value1 value2 value 3 
key3: value1 value2 value 3 

Я пытаюсь открыть его в качестве словаря и распечатать список ключей и значений, так это выглядит, как это в конце :

key1 value1 
key1 value2 
key1 value3 
key2 value1 
key2 value2 
key2 value3 

Я пытаюсь следующий код:

f = open('groups_4.txt', 'r') 
answer = {} 
for line in f: 
    k, v = line.strip().split(':') 
    answer[k.strip()] = v.strip() 
    print(k+'\t'+'\n{0}\t'.format(k).join(v)) 
f.close() 

Однако это дает мне такой вывод:

key1 v 
key1 a 
key1 l 
key1 u … 

Любая идея, что я делаю неправильно ???

+0

'.join (v)' итерации по каждому символу, например. '" value1 "' отдельно. – jonrsharpe

ответ

0

ли что:

f = open('groups_4.txt', 'r') 
answer = {} 
for line in f: 
    k, v = line.strip().split(':') 
    answer[k.strip()] = v.strip() 
    for word in v.split(): 
     print k, word 

f.close() 

Это цикл со словом итерации по линии «V», что «значение1 значение2 value3» расщепляется непечатаемыми. Слово - это элемент этой строки.

+1

Да, спасибо, большое спасибо, я так долго пытался сделать это сам! Можете ли вы объяснить мне, что означает «слово» в этом случае? и в чем разница (кроме очевидного) от моего кода? Я хочу понять и узнать. Большое спасибо!!!! – user3188922

+1

Не используйте 'print' больше, а' print() '. –

0

Как и в:

f = open('groups_4.txt', 'r') 
for line in f: 
    key, valuetext = line.split(': ') 
    for value in valuetext.split(): 
     print('{} {}'.format(key,value)) 
f.close() 
0

F = открыт ('1.TXT', 'г') для линии в F: K, V = line.strip() разделенного (. '':) значение = v.split (»«) ответ = {} для V в стоимостном выражении: ответ [к] = v печатающую ответа

f.close()

1
f = open('group_4.txt', 'r') 
for line in f: 
    k, v = line.strip().split(':') 
    value=v.split(' ') 
    answer={} 
    for v in value: 
     answer[k] = v 
     print answer 
f.close() 

В v вы получаете значение value1 value2 value3, поэтому разделите его.

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