본문 바로가기
파이썬

파이썬 기준과 일치하는 첫 번째 시퀀스 항목 찾기

by º기록 2020. 9. 17.
반응형

특정 기준과 일치하는 첫 번째 목록 항목을 찾고 반환하는 가장 우아하고 효율적인 방법은 무엇입니까?

예를 들어, 객체 목록이 있고 obj.val == 5 속성을 ​​가진 객체의 첫 번째 객체를 가져오고 싶습니다. 물론 목록 이해력을 사용할 수 있지만 O (n)이 발생하고 n이 크면 낭비입니다. 기준이 충족되면 break 와 함께 루프를 사용할 수도 있지만 더 비단뱀적이고 우아한 솔루션이있을 수 있다고 생각했습니다.

 

해결 방법

 

객체에 대해 다른 인덱스 나 정렬 된 정보가없는 경우 이러한 객체를 찾을 때까지 반복해야합니다.

next(obj for obj in objs if obj.val==5)

그러나 이것은 완전한 목록 이해보다 빠릅니다. 이 두 가지를 비교하십시오.

[i for i in xrange(100000) if i == 1000][0]

next(i for i in xrange(100000) if i == 1000)

첫 번째는 5.75ms, 두 번째는 58.3µs (루프가 100 배 더 짧기 때문에 100 배 더 빠름)가 필요합니다.

 

참조 페이지 https://stackoverflow.com/questions/9868653

 

 

반응형

댓글