私はlist
の繰り返しをdict
としています。私は各dict
のいくつかの要素を除外したいと思います。私はlist
全体をループすることでこれを行うことができ、下の例に示すように、必要な要素を選択します。しかし、これは効率的な方法のようには見えません。以下に出力されるように、メモリ使用量と速度に関して望ましい結果を達成する最良の方法は何ですか?繰り返しキーと異なる値を持つ辞書のリストから要素を除外するにはどうすればいいですか?
listOfDic = [
{'firstElement': 'a', 'secondElement': '1', 'thirdElement': 'i'}
, {'firstElement': 'b', 'secondElement': '2', 'thirdElement': 'ii'}
, {'firstElement': 'c', 'secondElement': '3', 'thirdElement': 'iii'}
]
filteredListOfDic = []
# looping through old list, selecting first and third element
# and using those elements for building a new "filtered" list of dict
for row in listOfDic:
filteredListOfDic.append({
'firstElement': row['firstElement']
, 'thirdElement': row['thirdElement']
})
print filteredListOfDic
結果ビーイング:
[{'thirdElement': 'i', 'firstElement': 'a'}
, {'thirdElement': 'ii', 'firstElement': 'b'}
, {'thirdElement': 'iii', 'firstElement': 'c'}]
メモリに関しては、2つの要素を持つ辞書のリストでなければなりません。より良いメモリ使用を達成するためのアプローチはありません。スピードという言葉は、すべての要素を通過して必要なものを選択する必要がありますが、とにかく_O(n)_ですが、パフォーマンスが少し改善されたアプローチが必要です。 – Arman