More verbose than the above answers but modify the list in place rather than creating a copy of it (Have no idea which would be faster - copying might be the way to go anyway!)
lst = [{'title': u'Politics', 'id': 1L, 'title_url': u'Politics'},
{'id': 3L, 'title_url': u'Test', 'title': u'Test'}]
for i in xrange(len(lst)-1,0,-1):
if lst[i].get("title")=="Test":
del lst[i]
Modifies the list in place rather than copying it, copes with removing multiple dicts which have "title":"Test" in them and copes if there's no such dict.
Note that .get("title") return None if there's no matching key whereas ["title"] raises an exception.
If you could guarantee there would be just one matching item you could also use (and wanted to modify in place rather than copy)
for i,d in enumerate(lst):
if d.get("title")=="Test":
del lst[i]
break
Probably simplest to stick with
[x for x in lst if x.get("title")!="Test"]