Python 文本到字典并打印多个值

Python 文本到字典并打印多个值,python,dictionary,Python,Dictionary,我有这样一个文本文件: key1: value1 value2 value 3 key2: value1 value2 value 3 key3: value1 value2 value 3 key1 v key1 a key1 l key1 u … 我试图将其作为字典打开,并打印键和值的列表,因此最后看起来是这样的: key1 value1 key1 value2 key1 value3 key2 value1 key2 value2 key2 value3 我正在尝试以下代码: f =

我有这样一个文本文件:

key1: value1 value2 value 3
key2: value1 value2 value 3
key3: value1 value2 value 3
key1 v
key1 a
key1 l
key1 u …
我试图将其作为字典打开,并打印键和值的列表,因此最后看起来是这样的:

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: value1 value2 value 3
key2: value1 value2 value 3
key3: value1 value2 value 3
key1 v
key1 a
key1 l
key1 u …
知道我做错了什么吗???

是因为:

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”由空格分隔。单词是该行的元素。

如:

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()
f=打开('1.txt','r') 对于f中的行: k、 v=line.strip().split(“:”) 值=v.split(“”) 答案={} 对于v值: 答案[k]=v 打印答案

f、 关闭()


在v中,您将得到value1 value2 value3,因此将其拆分。

。join(v)
分别迭代每个字符,例如
“value1”
。是的,非常感谢,我自己尝试了这么久!你能解释一下在那种情况下“单词”代表什么吗?与我的代码有什么区别(除了明显的区别)?我想了解和学习。谢谢!!!!不要再使用
print
,而是使用
print()