从列表中删除元素

mak*_*mov 0 python list-comprehension filter

我有一个变量:

x = 4
Run Code Online (Sandbox Code Playgroud)

我有一个清单:

list = [{'name': u'A', 'value': '1'}, {'name': u'B', 'value': '4'}, {'name': u'C', 'value': '2'}]
Run Code Online (Sandbox Code Playgroud)

如何排除/删除列表中value = x的元素?

Don*_*ner 8

一个列表理解是为这个完美的.

[ k for k in list if int(k['value']) != x ]
Run Code Online (Sandbox Code Playgroud)

你也可以使用filter,但我相信列表理解在风格方面是首选:

filter(lambda p: int(p['value']) != x, list)
Run Code Online (Sandbox Code Playgroud)

编辑:注意到你的值是字符串,所以我添加了一个int转换.

  • [list comprehension确实比`map()`和`filter()`更受欢迎(甚至不考虑`reduce()`!)](http://www.artima.com/weblogs/viewpost.jsp ?thread = 98196)BDFL这样说! (3认同)