如何分割文件中的行并将数据放入python中的字典
我正在尝试读取txt文件并将数据放入字典中。我的文件看起来像这样:如何分割文件中的行并将数据放入python中的字典
Alex:3
John:6
Sam:8
基本上,一个单词和整数用冒号分隔。我想打开并读取文件,将冒号分隔的每一行分开,并将数据放入如下字典中:
{'Alex':3,'John':6,'Sam':8}
到目前为止,我的代码如下所示:
d = {}
f = open('scores.txt', 'r')
for line in f.readlines():
line = line.strip()
name = line.split(":")
如何分配名称作为键和整数作为值,并把它放进字典?
像这样:
d = {}
f = open('scores.txt', 'r')
for line in f.readlines():
name,score = line.split(":")
d[name] = int(score)
str.split()返回字符串中的所有标记列表。您可以使用我展示的语法获取这两个值。如你所见,你可以通过名称变量在字典中索引它。
编辑:由于@MauroBaraldi在评论中指出,你不需要line.strip()
了,因为int()
会为你做这项工作。
你的问题是与
name = line.split(":")
split()
会返回一个列表。你可以解开列表如下:
name, othervalue = line.split(":")
然后执行:
mydict[name] = othervalue
d = {}
f = open('scores.txt', 'r')
for line in f:
line = line.strip()
name,age= line.strip(":")
d[name]=age
在上面的代码,line.strip()
将删除换行符,line.split(":")
将分裂的“字符串: “,所以你会得到两个价值的名称和年龄将被存储。 d[name]=age
名称是关键,年龄将在值存储
答案没有任何解释通常没有帮助。 – ErlVolton 2014-10-31 17:24:32
谢谢downvoting – Hackaholic 2014-10-31 17:24:53
以下是解决问题的另一种方法。
with open('scores.txt') as fp:
result = {}
for line in fp.readlines():
key, value = line.split(':')
result[key] = int(value)
一个很好的做法是使用with
打开文件。当离开上下文时它会自动关闭。
您可以使用以下代码来获得所需的输出。您可以使用拆分来分隔单词。 rstrip用于删除换行符。
f = open('file name')
dic = {}
for l in f:
k,v = l.split(':')
v=v.rstrip('\n')
if k in dic:
dict.update({k:v })
else:
dic[k] = [v]
print dic
输出:
{'John': ['6'], 'Alex': ['3'], 'Sam': ['8']}
'当d =字典(line.strip()分割( ':'),例如,开放( 'scores.txt')线)'仅包含代码 – falsetru 2014-10-31 17:22:18