0

2つのファイルを1つの辞書にまとめようとしています。どちらもテキストファイルです。

最初のファイルには、州のイニシャルと人口が含まれています。次のようになります。

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

2番目のファイルには、状態の初期名と状態の名前があります(今回は、並べてではなく、行ごとに)。

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

このような辞書を作ろうとしています

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

現在、最初のテキストファイルを読み取るのに問題があります。略語が邪魔になっているときに数字だけを読み取るにはどうすればよいですか?

2行目は読みやすいので、2番目のテキストファイルの方が簡単です。

助言がありますか?

4

4 に答える 4

1

でデータを読み取った方法に応じて、splitを使用できます。

例えば:

>>> 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.txtしてpop.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 に答える