文本到字典并打印多个值

时间:2014-09-03 12:17:28

标签: python dictionary

我有一个这样的文本文件:

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 …

知道我做错了吗?

4 个答案:

答案 0 :(得分: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,所以将它拆分。

答案 1 :(得分: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”行,什么是由空格分割的“value1 value2 value3”。 Word是该行的元素。

答案 2 :(得分: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()

答案 3 :(得分:0)

f =打开(' 1.txt',' r') 对于f中的行:     k,v = line.strip()。split(':')     value = v.split('')     回答= {}     for v in value:         回答[k] = v         打印答案

f.close()