Python에는 derivation 이라는 특수 표현식이 있습니다. 그 기능은 데이터 구조를 입력으로 사용하고 이를 필터링하고 계산한 다음 마지막으로 다른 데이터 구조를 출력하는 것입니다. 데이터 구조에 따라 목록 이해, 집합 이해, 사전 이해로 나눌 수 있습니다. 먼저 가장 일반적으로 사용되는 목록 이해에 중점을 두겠습니다.
먼저 리스트 컴프리헨션의 구문 형식을 살펴보겠습니다.
목록 이름=[객체의 변수 표현식(ifcondition)]
listname: 새로 생성된 목록의 이름입니다.
표현: 표현.
변수: 변수 이름.
(if 조건): 객체에서 요구사항을 만족하는 목록을 선택하는데 사용됩니다.
지정된 범위 내의 값 목록, 지정된 조건의 목록, 조건을 충족하는 요소로 구성된 목록의 세 가지 측면에서 시작합니다.
먼저 10개의 숫자를 생성하여 목록에 저장해야 하는 경우에 대해 생각해 보겠습니다. 먼저 일반적인 방법을 살펴보겠습니다.
목록 이름=[]foriinrange(10):목록 이름.append(i)print(목록 이름)
출력은 다음과 같습니다
[0,1,2,3,4,5,6,7,8,9]
목록 이해를 사용하려면 한 줄만 필요합니다.
목록 이름=[iforiinrange(10)]
출력은 다음과 같습니다
[0,1,2,3,4,5,6,7,8,9]
이 접근 방식은 목록을 정의할 때 작업을 단순화합니다.
목록이 listname = [1,3,5,6,7,9,10,23,26,28,64,98]이라는 것을 알고 있다고 가정하고 그 목록에 있는 모든 숫자를 5로 더하고 싶습니다. 일반적인 방법:
목록 이름=[1,3,5,6,7,9,10,23,26,28,64,98]foriinrange(len(목록 이름)):목록 이름[i]+=5print(목록 이름)
출력은 다음과 같습니다
[6,8,10,11,12,14,15,28,31,33,69,103]
목록 이해를 사용하는 것도 매우 간결합니다.
목록 이름=[1,3,5,6,7,9,10,23,26,28,64,98]목록 이름=[i+5foriin목록 이름]
산출:
[6,8,10,11,12,14,15,28,31,33,69,103]
이러한 유형의 목록 이해는 처음 두 가지보다 더 복잡하지만 더 많은 코드를 단순화할 수 있습니다.
코드 형식을 살펴보는 예를 들어보겠습니다.
목록이 listname = [8,33,53,64,73,95,101,123,126,164,198]인 것으로 알려져 있습니다. 그러면 목록에서 100보다 작거나 큰 숫자를 찾은 다음 0.8을 곱하고 마지막으로 목록으로 되돌립니다.
일반적인 방법을 사용하는 경우:
listname=[10,20,30,40,60,120,130,140,160,180,200]newlist=[]#저장할 새 목록 만들기 foriinrange(len(listname)):#색인 값 순회 iflistname[i]>100:#100보다 큰 숫자 찾기 listname[ i]*=0.8#0.8을 곱합니다 newlist.append(listname[i])#새 목록에 추가 print(newlist)
출력은 다음과 같습니다
[96.0,104.0,112.0,128.0,144.0,160.0]
목록 이해를 사용하십시오.
목록 이름=[10,20,30,40,60,120,130,140,160,180,200]newlist=[i*0.8foriinlistnameifi>100]인쇄(새 목록)
출력 결과:
[96.0,104.0,112.0,128.0,144.0,160.0]
이 예의 문법 구조를 기반으로 분석해 보겠습니다.
복잡한 목록 이해를 사용할 때 이 방법을 사용할 수 있습니다. 먼저 객체에서 조건(조건문)을 충족하는 요소를 선택한 다음 출력 표현식을 처리하고 마지막으로 이를 목록에 저장하는 것으로 이해할 수 있습니다. 새로운 목록.
다음은 시도해 볼 수 있는 몇 가지 예시 질문입니다.
1. 목록 [1,2,13,22,25], 목록 이해를 사용하여 10보다 큰 숫자를 추출하고 각 숫자를 제곱한 후 최종적으로 출력하십시오.
실행 결과는 다음과 같습니다.
[169,484,625]
코드는 다음과 같습니다. 먼저 참조 답변을 완성해 보세요.
목록=[1,2,13,22,25]newlist=[i*iforiinlistifi>10]인쇄(새 목록)
2. 목록 이해를 사용하여 목록에서 모든 홀수를 찾고 새 목록을 구성합니다. 목록= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
코드는 다음과 같습니다:
목록=[1,2,3,4,5,6,7,8,9,10]newlist=[iforiinlistifi%2==1]인쇄(새 목록)
출력은 다음과 같습니다
[1,3,5,7,9]