0

我正在尝试将两个文件合并到一个字典中。它们都是文本文件。

第一个文件有州首字母和人口。它看起来像这样:

AL 4447100
AK 626932
AZ 5130632
AR 2673400
CA 33871648
CO 4301261
...

第二个文件有状态初始和状态名称(这次是每行,而不是并排):

AL
Alabama
AK
Alaska
AZ
Arizona
AR
Arkansas
CA
California
CO
Colorado
...

我正在尝试创建一个看起来像这样的字典

{'Alabama': 4447100, 'Alaska': 626932, ...}

现在,我无法阅读第一个文本文件。当缩写妨碍时,我如何阅读数字?

第二个文本文件更容易,因为我可以阅读每隔一行。

有什么建议么?

4

4 回答 4

1

您可以根据读取数据的方式使用拆分。

例如:

>>> myStr = 'AL 4447100'
>>> myStr.split(' ')
>>> ['AL', '447100']
于 2013-03-17T03:21:14.603 回答
0

我不会给出完整的解决方案,因为这可能是家庭作业,但你的最后一个应该有一些这样的代码

d = {}

with open('file1.txt') as f:
    for line in f:
         state, pop = line.split()
         d[states[state]] = int(pop) # states is a dictionary with initials as 
                                     # the  keys and full names as values
于 2013-03-17T03:22:43.763 回答
0

Q) 现在,我无法读取第一个文本文件。当缩写妨碍时,我如何阅读数字?

A)您可以将其与每行的字符串一起使用,以从字符串中删除前 3 个字符(首字母缩写词和空格):

number = lineString[3:]
于 2013-03-17T03:23:27.997 回答
0

假设你有文件states.txtpop.txt

with open("states.txt") as f1:
   x= f1.read().split()
   states = {state:abrv for state,abrv in zip(x[0::2],x[1::2])}

with open("pop.txt") as f2:
   y= f2.read().split()
   pop = {states[abrv]:val for abrv,val in zip(y[0::2],y[1::2])}
于 2013-03-17T03:44:39.757 回答