나는 아마존 보토와 함께 일하고 있고 나는 2 개의 목록을 가지고있다. 목록 1에는 인스턴스 개체가 포함되어 있습니다. 목록 2는 InstanceInfo 객체를 포함합니다. 두 객체 모두 id라는 속성을 가지고 있습니다. 나는 InstanceInfo 목록에 존재하는 Instance 객체 목록을 가져와야한다.개체 집합과 파이썬 세트 교집합
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)
그러나, 나는 나는이 사용 교집합을 교체해야한다고 들었습니다. 나는 예제를보고 있으며 매우 직관적으로 보입니다. 그러나 나는 객체에 대한 예제를 보지 못했다.
나는 약간 놀아 왔고 이론적으로는 제대로 작동하는 것을 볼 수 있지만 아직 모르는 경우가있는 '고급'구문이있을 수 있습니다. 나는 아직도 파이썬을 배우고있다.
여기에서 당신은 맞습니다. 왜냐하면 교차가 목록 생성에서 벗어 났기 때문입니다. 그러나 Marcin의 솔루션은 가장 느립니다. –
@ MateuszWoźniak 여러분의 해결책이 가장 느릴 것이라는 데는 의심의 여지가 없으며, 당신의 이데온은 단순히 "결과 : 실행되지 않음"을 말합니다. 보통은'timeit' 라이브러리를 사용하지 않는다는 것을 감안할 때 아마도 가장 좋을 것입니다. 시스템 시간. – Marcin
이 코드는 Mateusz의 코드와 어떻게 다른가요? 단 하나가 set()을 사용하고 외관상으로 빠르다는 것을 제외하고는? –