8

次のようにフォーマットされた 2 つのテキスト ファイルがあります。

foo,bar,etc

もう1つは次のようなものです:

1,2,3

そして、これら 2 つのテキスト ファイルを Python 用の 1 つの辞書に入れたいと思います。それぞれを手作業で行う必要はありません。出力で文字列を数値に接続したい。これを行う方法はありますか?

4

4 に答える 4

12
keys = first_string.split(',')
values = second_string.split(',')
output_dict = dict(zip(keys, values))

>>> first_string = "foo,bar,etc"
>>> second_string = "1,2,3"
>>> keys = first_string.split(',')
>>> values = second_string.split(',')
>>> output_dict = dict(zip(keys, values))
>>> output_dict
{'etc': '3', 'foo': '1', 'bar': '2'}

値を実際の数値にしたい場合は、次のように変換できます。

values = [int(v) for v in second_string.split(',')]
于 2012-08-12T00:56:57.040 に答える
6

ファイルからデータを読み取り、行をリストに分割し、int必要に応じてそれらを s に変換する方法を知っていると仮定します。

s1 = ['foo', 'bar', 'etc']
n1 = [1, 2, 3]
dict(zip(s1, n1))

収量:

{'bar': 2, 'etc': 3, 'foo': 1}

:

zip()はあなたのリストを結合します:

zip(s1, n1)
[('foo', 1), ('bar', 2), ('etc', 3)]

行データからリストを作成することに慣れていない場合は、特定の行に対してsplit()を使用して次のことができます。

line = line.split(',') #'foo,bar,etc' => ['foo','bar','etc'] / '1,2,3' => ['1','2','3']

数値データをintsに変換する場合は、リスト内包表記を使用します。

n1 = [int(n) for n in line] # ['1','2','3'] => [1, 2, 3]
于 2012-08-12T00:56:48.597 に答える
1

テキスト ファイルから値とキーを直接読み取ることができます。サンプル コードは次のようになります。

import fileinput

keys = []
values = []

for line in fileinput.input(['v.txt']):
    values = values + [int(v) for v in line.split(',')]

for line in fileinput.input(['k.txt']):
    keys = keys + [k.replace("\n","") for k in line.split(',')]

the_dict = dict(zip(keys, values))

値は整数として必要であり、テキスト ファイルには複数の行が含まれている可能性がありますが、同じ数の要素が含まれている必要があると想定しています。

于 2012-08-12T02:28:17.637 に答える
-1

私は始めたばかりですが、1行で2つを一緒に実行する方が簡単かもしれません:

string_dict = {'etc': '3', 'foo': '1', 'bar': '2'}
于 2018-02-04T04:07:34.787 に答える