我有一个文本文件(one.txt),它包含任意数量的键值对(其中键和值用冒号分隔 - 例如,x:17)。这里有一些(减去数字):
我需要打开文件并创建一个包含所有键值对的字典。
到目前为止,我已用
打开文件file = []
with open('one.txt', 'r') as _:
for line in _:
line = line.strip()
if line:
file.append(line)
我这样打开它以摆脱新行字符和文本文件中的最后一条黑线。我得到了python中键值对的列表。
我不确定如何使用列表键值对创建字典。 我尝试的一切都给了我一个错误。有些人说了些什么
ValueError:字典更新序列元素#0的长度为1; 2是必需的
答案 0 :(得分:4)
使用str.split()
:
with open('one.txt') as f:
d = dict(l.strip().split(':') for l in f)
答案 1 :(得分:2)
split()
将允许您指定分隔符:
以将键和值分隔为单独的字符串。然后,您可以使用它们填充字典,例如:mydict
mydict = {}
with open('one.txt', 'r') as _:
for line in _:
line = line.strip()
if line:
key, value = line.split(':')
mydict[key] = value
print mydict
输出:
{'mattis': 'turpis', 'lectus': 'per', 'tellus': 'nonummy', 'quam': 'ridiculus', 'Duis': 'ultricies', 'consequat': 'metus', 'nonummy': 'pretium', 'odio': 'mauris', 'urna': 'dolor', 'Aliquam': 'adipiscing'}