반응형
색인 / 열거에 대한 액세스 권한으로 Python 목록 이해가 가능합니까?
list1의 1에서 3까지의 인덱스가있는 모든 항목을 새 list2에 추가하는 다음 Python 코드를 고려하십시오.
for ind, obj in enumerate(list1):
if 4> ind > 0: list2.append(obj)
열거 형을 통해 인덱스에 액세스 할 수없는 경우 파이썬 목록 이해력을 사용하여 어떻게 작성합니까?
같은 것 :
list2 = [x for x in list1 if 4>ind>0]
그러나 나는 'ind'번호가 없기 때문에 이것이 작동합니까? :
list2 = [x for x in enumerate(list1) if 4>ind>0]
list2 = [x for ind, x in enumerate(list1) if 4 > ind > 0]
를 사용 하면 색인에 액세스 enumerate
할 수 있습니다.
list2 = [x for ind, x in enumerate(list1) if 4>ind>0]
실제 사용 사례가 더 복잡하지 않은 경우 @wim에서 제안한대로 목록 조각을 사용해야합니다.
>>> list1 = ['zero', 'one', 'two', 'three', 'four', 'five', 'six']
>>> [x for ind, x in enumerate(list1) if 4 > ind > 0]
['one', 'two', 'three']
>>> list1[1:4]
['one', 'two', 'three']
더 복잡한 경우-실제로 인덱스가 필요하지 않은 경우-슬라이스 또는 islice를 반복하는 것이 더 명확합니다.
list2 = [x*2 for x in list1[1:4]]
또는
from itertools import islice
list2 = [x*2 for x in islice(list1, 1, 4)]
작은 조각의 경우 간단한 list1[1:4]
. 슬라이스가 상당히 커질 수있는 경우 메모리 복사를 피하기 위해 islice를 사용하는 것이 좋습니다.
반응형
'Programing' 카테고리의 다른 글
목록에서 연속 숫자 그룹 식별 (0) | 2020.10.16 |
---|---|
CSS를 사용하여 목록의 세 번째 항목마다 스타일을 지정 하시겠습니까? (0) | 2020.10.16 |
각도 UI 부트 스트랩이있는 반응 형 드롭 다운 탐색 모음 (올바른 각도 방식으로 수행됨) (0) | 2020.10.16 |
.NET의 java.lang.IllegalStateException? (0) | 2020.10.15 |
hg 스트립 대 hg 백 아웃 및 hg 되돌리기 (0) | 2020.10.15 |