On Mon, Mar 9, 2009 at 5:56 PM, ski <nor...@khine.net> wrote: > i was looking to list all the items in list1 that are not in list2 based on > the key['id] and key['affiliation'] respectively.
OK. Generally, when you want to test for membership, a set or dict is a good choice. In this case, I would first make a set of the keys from list2: In [6]: list2 = [{'affiliation': 'ABTA', 'affiliation_no': u'G3903'}, {'affiliation': 'AAC', 'affiliation_no': u'none'}] In [8]: list2keys = set(item['affiliation'] for item in list2) In [9]: list2keys Out[9]: set(['AAC', 'ABTA']) Now you can filter list1 items by whether their id is in list2keys: In [10]: list1 = [{'is_selected': False, 'id': 'AAC', 'title': 'Association of Airline Cons.'}, {'is_selected': False, 'id': 'AALA', 'title': 'Adv. Activity Licence. Auth.'}, {'is_selected': False, 'id': 'ABPCO', 'title': 'Association of British Prof. Conf. Organisation'}, {'is_selected': True, 'id': 'ABTA', 'title': 'Association of British Travel Agents'}, {'is_selected': False, 'id': 'ABTOT', 'title': 'Association of Bonded Travel Organisation Trust'}, {'is_selected': False, 'id': 'AERA', 'title': 'Association of Europe Rail Agents'}] In [11]: for item in list1: ....: if item['id'] not in list2keys: ....: print item {'title': 'Adv. Activity Licence. Auth.', 'id': 'AALA', 'is_selected': False} {'title': 'Association of British Prof. Conf. Organisation', 'id': 'ABPCO', 'is_selected': False} {'title': 'Association of Bonded Travel Organisation Trust', 'id': 'ABTOT', 'is_selected': False} {'title': 'Association of Europe Rail Agents', 'id': 'AERA', 'is_selected': False} Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor