【发布时间】:2018-05-14 18:27:18
【问题描述】:
给定一个文件 data.txt: 包含国家名称及其人口和地区的列表,该文件如下所示:
China|1,339,190,000|9,596,960.00
Brazil|193,364,000|8,511,965.00
Japan|127,380,000|377,835.00
Canada|34,207,000|9,976,140.00
Indonesia|260,581,100|1,809,590.97
我想创建一个包含国家名称(键)和两个值(人口和面积)的字典。
最终的输出应该是这样的:
China:[1339190000,9596960.00]
人口是整数,面积是浮点数。
这是我的代码,我不知道我做错了什么,我想知道是否有人可以为我指出。
谢谢。
这是我的代码:
Country = {}
file = open("data.txt", "r")
for i in file :
file1 = i.strip(",")
parts = i.split("|")
length = len(file[i])
if length in parts:
Country[length][i] = file[i]
else:
Country[length] = {i: file[i]}
print(parts)
【问题讨论】:
-
解释器没有告诉你
len(file[i])有问题吗? -
您请求的
{China:1339190000:9596960.00}格式不正确。格式为 {key: item}。 -
@Daniel Copley 中国呢:1339190000:9596960.00
-
不,那也行不通。您使用字典的想法是正确的。但是格式不是 {key:item:item}。您可以做的是将两个数字都转换为字符串并像这样存储它们。或者您可以使用列表来保存每个键的多个项目。示例:
{key: [item1, item2]}或{key: 'item1:item2'} -
@Daniel Copley 我明白了,谢谢
标签: python python-3.x file dictionary