I次のPythonのリストがあります。キーとして最初の行ヘッダーで辞書にリストを入れ
[['A,B,C,D'],
['1,2,3,4'],
['5,6,7,8']]
をどのように私は辞書にそれを入れて、キーとして最初のサブリストを使用することができます?:
{'A': '1',
'B': '2',
'C': '3',
'D': '4'}
{'A': '5',
'B': '6',
'C': '7',
'D': '8'}
ありがとうございます!
I次のPythonのリストがあります。キーとして最初の行ヘッダーで辞書にリストを入れ
[['A,B,C,D'],
['1,2,3,4'],
['5,6,7,8']]
をどのように私は辞書にそれを入れて、キーとして最初のサブリストを使用することができます?:
{'A': '1',
'B': '2',
'C': '3',
'D': '4'}
{'A': '5',
'B': '6',
'C': '7',
'D': '8'}
ありがとうございます!
質問に提示されるのは、あなたのデータを見てみましょう:
>>> a = [['A,B,C,D'], ['1,2,3,4'], ['5,6,7,8']]
さて、辞書の希望リストにそれを変換してみましょう:
>>> [dict(zip(a[0][0].split(','), c[0].split(','))) for c in a[1:]]
[{'A': '1', 'C': '3', 'B': '2', 'D': '4'}, {'A': '5', 'C': '7', 'B': '6', 'D': '8'}
あなたは、各サブリスト内の文字列を分割した後、リストの残りの要素を、リストの最初の要素をzip
ことができます。
# to split string in the sublists
lst = [i[0].split(',') for i in lst]
[dict(zip(lst[0], v)) for v in lst[1:]]
#[{'A': '1', 'B': '2', 'C': '3', 'D': '4'},
# {'A': '5', 'B': '6', 'C': '7', 'D': '8'}]
ちょうどDictReaderインスタンスを使用します。人々は通常これらをファイルオブジェクトで使用しますが、実際にはそれを繰り返し処理できる限り、実際にはそれを渡すことには気を付けません。
>>> L = [['A,B,C,D'],
... ['1,2,3,4'],
... ['5,6,7,8']]
>>> import csv
>>> reader = csv.DictReader((line for [line] in L))
>>> d1, d2 = reader
>>> d1
{'A': '1', 'B': '2', 'C': '3', 'D': '4'}
>>> d2
{'A': '5', 'B': '6', 'C': '7', 'D': '8'}
私は 'csv.DictReader((行中の行[0]))'が少し良く読んでいると思います。 –
'L 'のサブリストに複数の要素がある場合、' ValueError'を発生させるコードが好きです。 – wim
二つの別々の辞書のようになっていること、どのような実際のフォーマットが欲しいですか?また、どのようにあなたはそのような奇妙なフォーマットを持っていますか?データはどこから来ていますか? –