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']
但我在list2
詞典包括country == 'Italy'
和country == 'Spain'
並刪除所有其他(或者更好地從list1
中彈出它們而不創建另一個)。我怎樣才能在一行中做到這一點=
'[元素如果元素['國家']在['意大利','西班牙]]''工作IIUC的list1中的元素。列表理解是唯一一條這樣做的方法。從列表中彈出需要一個循環,而不是在當前列表中... –
Popping通常需要更多時間,因爲移動所有元素都是在* O(n)*中完成的(遺憾的是,似乎沒有有效的方法來提供列表應該全部刪除的索引)。 –
Nitpick:你的意思是'country =='意大利'或'country =='西班牙' – BallpointBen