2011-03-26 5 views
0

저는 파이썬에서 새로운 사람입니다. 잘못된 점이 있으면 미안 해요.파이썬에서 콜렉션과 가장 효과적으로 교차하는 방법은 무엇입니까?

많은 컬렉션 요소 (20 o 30)와 그 안에 많은 양의 요소를 교차시키고 싶습니다.

나는 세트를 해시 테이블과 비슷하게 읽었으며 (같은 원리로 작동한다는 것을 알고있다.) Sets에는 intersect 메서드가 있습니다.이 메서드는 실제로 시도해 보았고 실제로 잘 작동합니다.

그러나 경험 많은 의견을 남기고 싶습니다.

무엇을 하시겠습니까?

다시 문제가 발생합니다. 20 개 또는 30 개의 콜렉션 (설정할 수 있으며, 요소는 반복되지 않음)의 콜렉션을 만들고 싶습니다. 컬렉션이 어떻게 생성되는지 생각하지 마십시오 (삽입이 중요하지 않음).

고마워요.

+2

는 세트를 사용하여 어떤 문제가 있습니까? 파이썬에 내장 된 데이터 구조는 일반적으로 매우 효율적입니다. 당신의 콜렉션이 충분히 커서 메모리가 부족하다면,'set'은 여러분이 필요로하는 것과 정확히 같은 것 같습니다. –

+0

아무 문제가 없습니다 !!! 사실, 그게 내가하는 방식이야. 그러나 나는 솔직히 그것이 그것을하는 최고의 방법인지 모릅니다! – santiagobasulto

답변

1
result = set1.intersection(set2, set3, set4, ...) 

http://docs.python.org/library/stdtypes.html

+1

대부분의 실제 상황에서'set1.intersection (sorted ((set2, set3, ...), key = len))'이 더 좋을까요? 또는 완전히 정렬하는 것보다 먼저 수행 할 가장 작은 것을 골라 내십시오. –

+0

당신은 애플리케이션 레벨 –

+0

에서 이런 종류의 최적화를 자유롭게 수행 할 수 있습니다. 우리가 충분히 신경 쓰면 특정 파이썬 구현이 이미 그런 종류의 작업을하는지 확인할 수 있습니다. –

관련 문제