2012-02-18 2 views
0

У меня есть переменная:Удалить элементы из списка

x = 4 

И у меня есть список:

list = [{'name': u'A', 'value': '1'}, {'name': u'B', 'value': '4'}, {'name': u'C', 'value': '2'}] 

Как я могу исключить/удалить элемент в списке где значение = х?

+0

Возможный дубликат [Удалить все вхождения значения из списка Python] (http://stackoverflow.com/questions/1157106/remove-all-occurences-of-a-value-from-a-python-list) – Marcin

+0

Это не точный дубликат, потому что это свойство значения, а не самого значения. –

ответ

8

A list comprehension идеально подходит для этого.

[ k for k in list if int(k['value']) != x ] 

Вы также можете использовать filter, но я считаю, списочные являются предпочтительными с точки зрения стиля:

filter(lambda p: int(p['value']) != x, list) 

редактировать: заметили ваши значения строк, поэтому я добавил Int преобразования.

+3

[Список понятий действительно предпочтительнее над 'map()' и 'filter()' (и даже не думайте о 'reduce()'!)] (Http://www.artima.com/weblogs/viewpost. jsp? thread = 98196) BDFL так говорит! –

Смежные вопросы