반응형
일부 값보다 큰 목록의 항목 목록 반환
다음 목록이 있습니다
j=[4,5,6,7,1,3,7,5]
[5,5,6,7,7]
j에서 5보다 크거나 같은 요소 를 반환하는 가장 간단한 방법은 무엇입니까 ?
목록 이해를 사용하여 필터링 할 수 있습니다.
j2 = [i for i in j if i >= 5]
실제로 예와 같이 정렬하려면 sorted
다음을 사용할 수 있습니다 .
j2 = sorted(i for i in j if i >= 5)
또는 sort
최종 목록에 전화 :
j2 = [i for i in j if i >= 5]
j2.sort()
목록 이해는 간단한 접근 방식입니다.
j2 = [x for x in j if x >= 5]
또는 filter
똑같은 결과를 위해 사용할 수 있습니다.
j2 = filter(lambda x: x >= 5, j)
원래 목록 j
은 수정되지 않았습니다.
목록 이해력을 사용할 수 있습니다.
[x for x in j if x >= 5]
원하는 출력이 정렬되어 있으므로 정렬해야합니다.
>>> j=[4, 5, 6, 7, 1, 3, 7, 5]
>>> sorted(x for x in j if x >= 5)
[5, 5, 6, 7, 7]
사용 filter
(과 기능을 수행하지 않고 짧은 버전을 lambda
사용 __le__
) :
j2 = filter((5).__le__, j)
예 (python 3) :
>>> j=[4,5,6,7,1,3,7,5]
>>> j2 = filter((5).__le__, j)
>>> j2
<filter object at 0x000000955D16DC18>
>>> list(j2)
[5, 6, 7, 7, 5]
>>>
예 (python 2) :
>>> j=[4,5,6,7,1,3,7,5]
>>> j2 = filter((5).__le__, j)
>>> j2
[5, 6, 7, 7, 5]
>>>
사용 __le__
전이 추천, 그것은 매우 쉽게 __le__
당신의 친구입니다
원하는 출력으로 정렬하려면 (두 버전 모두) :
>>> j=[4,5,6,7,1,3,7,5]
>>> j2 = filter((5).__le__, j)
>>> sorted(j2)
[5, 5, 6, 7, 7]
>>>
사용하다 sorted
타이밍 :
>>> from timeit import timeit
>>> timeit(lambda: [i for i in j if i >= 5]) # Michael Mrozek
1.4558496298222325
>>> timeit(lambda: filter(lambda x: x >= 5, j)) # Justin Ardini
0.693048732089828
>>> timeit(lambda: filter((5).__le__, j)) # Mine
0.714461565831428
>>>
그래서 저스틴이 이긴다 !!
와 함께 number=1
:
>>> from timeit import timeit
>>> timeit(lambda: [i for i in j if i >= 5],number=1) # Michael Mrozek
1.642193421957927e-05
>>> timeit(lambda: filter(lambda x: x >= 5, j),number=1) # Justin Ardini
3.421236300482633e-06
>>> timeit(lambda: filter((5).__le__, j),number=1) # Mine
1.8474676011237534e-05
>>>
그래서 마이클이 이긴다 !!
>>> from timeit import timeit
>>> timeit(lambda: [i for i in j if i >= 5],number=10) # Michael Mrozek
4.721306089550126e-05
>>> timeit(lambda: filter(lambda x: x >= 5, j),number=10) # Justin Ardini
1.0947956184281793e-05
>>> timeit(lambda: filter((5).__le__, j),number=10) # Mine
1.5053439710754901e-05
>>>
그래서 저스틴이 또 이깁니다 !!
다른 방법이 있습니다.
j3 = j2 > 4; print(j2[j3])
3.x에서 테스트
참조 URL : https://stackoverflow.com/questions/4587915/return-list-of-items-in-list-greater-than-some-value
반응형
'code' 카테고리의 다른 글
Django : 필드를 NULL로 설정하는 방법은 무엇입니까? (0) | 2020.12.30 |
---|---|
django는 다른 앱의 템플릿을 포함합니다. (0) | 2020.12.30 |
변경된 코드를 다시로드하는 Rails 콘솔 명령 (Rails 3+)이 있습니까? (0) | 2020.12.30 |
wkhtmltopdf를 사용하여 HTML에서 Google 웹 글꼴 및 PDF 생성 (0) | 2020.12.30 |
앱이 백그라운드에서 다시 시작될 때 중단 된 위치에서 애니메이션 복원 (0) | 2020.12.30 |