Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで与えられた辞書のリストをフラット化する


要素が辞書であるリストがあります。これらすべてのリスト要素がキーと値のペアとして存在する単一の辞書を取得するには、それをフラット化する必要があります。

for and update

空の辞書を取得し、リストから要素を読み取って要素を追加します。要素の追加は、更新機能を使用して行われます。

listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
res = {}
for x in listA:
   res.update(x)
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

出力

上記のコードを実行すると、次の結果が得られます-

('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}])
('Type of Object:\n', )
('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11})
('Type of flattened Object:\n', )

reduceあり

また、reduce関数とupdate関数を使用して、リストから要素を読み取り、空の辞書に追加することもできます。

from functools import reduce
listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
# Using reduce and update
res = reduce(lambda d, src: d.update(src) or d, listA, {})
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

出力

上記のコードを実行すると、次の結果が得られます-

('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}])
('Type of Object:\n', )
('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11})
('Type of flattened Object:\n', )

ChainMapを使用

ChainMap関数は、リストから各要素を読み取り、新しいコレクションオブジェクトを作成しますが、辞書は作成しません。

from collections import ChainMap
listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}]
# printing given arrays
print("Given array:\n",listA)
print("Type of Object:\n",type(listA))
# Using reduce and update
res = ChainMap(*listA)
# Result
print("Flattened object:\n ", res)
print("Type of flattened Object:\n",type(res))

出力

上記のコードを実行すると、次の結果が得られます-

Given array:
[{'Mon': 2}, {'Tue': 11}, {'Wed': 3}]
Type of Object:

Flattened object:
ChainMap({'Mon': 2}, {'Tue': 11}, {'Wed': 3})
Type of flattened Object:


  1. Pythonでネストされたリストイテレータをフラット化する

    整数のネストされたリストがあるとします。それを平坦化するためにイテレータを実装する必要があります。各要素は整数またはリストのいずれかです。そのリストの要素は、整数または他のリストの場合もあります。したがって、入力が[[1、1]、2、[1、1]]の場合、出力は[1、1、2、1、1]になります。 これを解決するには、次の手順に従います- 初期化セクションでは、ネストされたリストを取得します。これは次のように機能します- resを空のリストとして設定し、インデックス:=0、getVal(nestedList)を呼び出します getVal()はnestedIntegersを取り、こ

  2. Pythonの特定の位置にあるリストのオブジェクトを挿入するにはどうすればよいですか?

    特定の位置に要素を挿入する場合は、insert(pos、obj)メソッドを使用します。 1つのオブジェクトを受け入れ、そのオブジェクトが呼び出されたリストの位置posにそのオブジェクトを追加します。 例 my_list = [2, 3, 1, -4, -1, -4] my_list.insert(1, 0) print(my_list) 出力 これにより、出力が得られます- [2, 0, 3, 1, -4, -1, -4] オブジェクトを最後にのみ挿入する場合は、挿入の代わりに追加を使用します。 1つのオブジェクトを受け入れ、そのオブジェクトを呼び出されたリストの最後に追加します。 例