0
list1 = [
{'id': 1, 'country': 'Italy'},
{'id': 2, 'country': 'Spain'},
{'id': 3, 'country': 'Japan'}
]
私はlist1
からcountry != Italy
を持つすべての辞書削除するには、このコードを使用します。削除辞書
list2 = [element for element in list1 if element['country'] == 'Italy']
をしかし、私はcountry == 'Italy'
とcountry == 'Spain'
list2
辞書に含まれ、他のすべてを削除するには(または別のものを作成せずにlist1
からそれらをよりよくポップする)。私は、これは1行でどのように行うことができます=
'[のための要素IIUCで動作する['Italy'、 'Spain']] 'の要素['country']がlist1の要素である。リストの理解は、1行でそれを行う唯一の方法です。リストからポップすると、現在のリストではなく、ループが必要です... –
ポップアップは通常、すべての要素を移動することが* O(n)*で行われるので、より多くの時間を必要とします(残念ながらリストを提供する効率的な方法はないようですインデックスはすべて削除する必要があります)。 –
Nitpick:あなたは 'country == 'イタリア" OR "国=='スペイン 'を意味する – BallpointBen