Python 시퀀스 의 유도 식 구현 코드

유도 식comprehensions(해석 식 이 라 고도 함)은 Python 의 독특한 특성 이다.
유도 식 은 하나의 데이터 시퀀스 에서 다른 새로운 데이터 시퀀스(구조 체)를 구축 할 수 있다.
Python 에는 모두 세 가지 유도 가 있 는데 Python 2 와 3 에서 모두 지원 합 니 다.
  • 리스트 유도 식
  • 사전 유도 식
  • 집합 유도 식
  • 1.리스트 유도 식
    역할:하나의 표현 식 으로 규칙 적 인 목록 을 만 들 거나 규칙 적 인 목록 을 제어 합 니 다.
    목록 유도 식 은 목록 생 성식 이 라 고도 부른다.
    (1)빠 른 체험
    필요:0-10 목록 을 만 듭 니 다.while순환 실현
    
    # 1.        
    list1 = []
    
    # 2.     ,          list1 
    i = 0
    while i < 10:
        list1.append(i)
        i += 1
    
    #   :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(list1)
    for순환 실현
    
    list1 = []
    for i in range(10):
        list1.append(i)
    #   :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(list1)
    목록 유도 식 실현
    
    """
            ,            []   
               。
    
         ,     for    ,
    for         ,  for       。
    for     ,         i  。
    """
    #   :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    list1 = [i for i in range(10)]
    print(list1)
    목록 유도 식 은 코드 를 간소화 하고 규칙 적 인 목록 을 만 들 거나 제어 하 는 것 입 니 다.
    (2)if 가 있 는 목록 유도 식
    필요:0-10 짝수 목록 만 들 기
    방법 1:range()보폭 을 통 해 실현
    
    #   :[0, 2, 4, 6, 8]
    list1 = [i for i in range(0, 10, 2)]
    print(list1)
    방법 2:if을 통 해 실현
    
    # 1. for   if         
    list2 = []
    for i in range(10):
        if i % 2 == 0:
            list2.append(i)
    #   :[0, 2, 4, 6, 8]
    print(list2)
    
    # 2. for    if        if      
    list1 = [i for i in range(10) if i % 2 == 0]
    #   :[0, 2, 4, 6, 8]
    print(list1)
    (3)여러 for 순환 실현 목록 유도 식
    필요,생 성 목록 은 다음 과 같 습 니 다:
    
    [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
    코드 는 다음 과 같 습 니 다:
    
    list1 = [(i, j) for i in range(1, 3) for j in range(3)]
    print(list1)
    
    #       
    #  for         for    
    
    # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
    #   1 : 1   2  range(1,3)
    #   2 :0 1 2  range(3)
    list1 = []
    for i in range(1, 3):
        for j in range(3):
            #         :           ,
            #              
            list1.append((i, j))
    
    print(list1)
    
    #   for       
    list2 = [(i, j) for i in range(1, 3) for j in range(3)]
    print(list2)
    2.사전 유도 식
    생각:다음 두 개의 목록 이 있다 면:
    
    list1 = ['name', 'age', 'gender']
    list2 = ['Tom', 20, 'man']
    어떻게 빨리 사전 으로 통합 합 니까?
    답:for순환 으로 연결 하면 실현 할 수 있 지만 우 리 는 개작for순환 을 통 해 사전 유도 식 으로 바 꿀 수 있다.
    사전 유도 식 역할:빠 른 통합 목록 은 사전 이나 사전 의 대상 데 이 터 를 추출 합 니 다.
    아래 의 예 시 를 통 해 사전 유도 식 을 신속하게 체험 하 다.
    (1)사전 만 들 기
    사전key은 1-5 숫자 이 고value은 이 숫자의 2 차원 이다.
    
    # dict1 = {k: v for i in range(1, 5)}
    dict1 = {i: i**2 for i in range(1, 5)}
    print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16}
    {i:i**2}는 하나의 사전 을 나타 내 는데keyi이 고valuei**2이다.
    마지막 으로 사전 을 되 돌려 야 하기 때문에 오른쪽 표현 식 의 가장 바깥쪽 은 큰 괄호 입 니 다.
    (2)두 목록 을 하나의 사전 으로 합 친다.
    
    list1 = ['name', 'age', 'gender']
    list2 = ['Tom', 20, 'man']
    
    dict1 = {list1[i]: list2[i] for i in range(len(list1))}
    print(dict1)
    #   :{'name': 'Tom', 'age': 20, 'gender': 'man'}
    요약:
    만약 두 목록 의 데이터 개수 가 같다 면len어떤 목록 의 길 이 를 통계 해도 된다.
    만약 두 목록 데이터 의 개수 가 다르다 면len통계 데이터 가 많은 목록 데이터 의 개수 가 틀 릴 수 있 습 니 다.len통계 데이터 가 적은 목록 데이터 개 수 는 틀 리 지 않 습 니 다.(이 점 은 반드시 주의해 야 한다)
    (3)사전 에서 대상 데이터 추출
    
    counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
    
    #   :            200     
    count1 = {key: value for key, value in counts.items() if value >= 200}
    print(count1)  # {'MBP': 268, 'DELL': 201}
    3.집합 유도 식
    집합 유도 식 은 위의 두 유도 식 보다 사용 빈도 가 매우 적다.
    수요:집합 을 만 듭 니 다.데 이 터 는 아래 목록 의 2 차원 입 니 다.
    
    list1 = [1, 1, 2]
    코드 는 다음 과 같 습 니 다:
    
    list1 = [1, 1, 2]
    set1 = {i ** 2 for i in list1}
    print(set1)  # {1, 4}
    주의:집합 은 데이터 제거 기능 이 있 습 니 다.
    4.추가 알림
    Python 에서 시퀀스 에 관 한 문 서 를 어떻게 봅 니까?
  • 파일 을 열 고 시퀀스 된 부분 문 서 를 찾 습 니 다
  • [파 이 썬 표준 라 이브 러 리(파 이 썬 표준 라 이브 러 리)]―>오른쪽 페이지[Sequence Type]
  • Common Sequence Operations아래 목록 은 서열 로 통용 된다.
  • 가 변 서열 과 가 변 서열 을 모두 사용 할 수 있 는 방법 이나 함수 이다.
  • Mutable Sequence Types아래 의 목록 은 가 변 서열 로 사용 할 수 있 는 방법 이나 함수 입 니 다.
  • 파 이 썬 서열 의 유도 식 실현 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 서열 에 관 한 유도 식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기