Пересечение набора python с наборами объектов

Я работаю с amazon boto и у меня есть 2 списка. Список 1 содержит объекты экземпляра. Список 2 содержит объекты InstanceInfo. Оба объекта имеют атрибут с именем id. Мне нужно получить список объектов Instance, идентификатор которых существует в списке InstanceInfo.

l1 = [Instance:i-04072534, Instance:i-06072536, Instance:i-08072538, Instance:i-0a07253a, Instance:i-e68fa1d6, Instance:i-e88fa1d8, Instance:i-ea8fa1da, Instance:i-ec8fa1dc]

l2 = [InstanceInfo:i-ec8fa1dc, InstanceInfo:i-ea8fa1da, InstanceInfo:i-e88fa1d8, InstanceInfo:i-e68fa1d6]

Требуемый результат:

l3 = [Instance:i-ec8fa1dc, Instance:i-ea8fa1da, Instance:i-e88fa1d8, Instance:i-e68fa1d6]

Прямо сейчас я работаю над этим:

l3= []
for a in l1  
    for b in l2:
        if a.id == b.id:
            l3.append(a)

Однако мне сказали, что я должен заменить это, используя пересечение множеств. Я смотрел на примеры, и это выглядит очень просто. Но я не вижу примеров работы с объектами.

Я немного поиграл и теоретически вижу, как это работает, но может быть какой-то «продвинутый» синтаксис, о котором я не знаю. Я все еще изучаю питон.

5
задан Steffen Opel 28 March 2012 в 13:07
поделиться