从多个条件的列表中删除字典

时间:2017-02-20 20:07:01

标签: python dictionary

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']

但我要在list2country == 'Italy'中添加country == 'Spain'词典并删除所有其他词典(或者更好地从list1弹出它们而不创建另一个词典)。我怎么能在一行=

中做到这一点

1 个答案:

答案 0 :(得分:1)

如果你真的想要一个单行,你可以使用列表理解就地列表更新:

list1[:] = [d for d in list1 if d['country'] in ('Spain', 'Italy')]