ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] zip() 함수
    Python 2019. 9. 10. 15:52

    zip(*iterable)

    • 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수
    list(zip([1,2,3], [4,5,6]))
    
    # [(1, 4), (2, 5), (3, 6)

     

    list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))
    
    # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

     

    list(zip("abc", "def"))
    
    # [('a', 'd'), ('b', 'e'), ('c', 'f')]

     

    a = [1, 2, 3]
    b = "abc"
    
    for x, y in zip(a, b):
    	print(x, y)
    # 출력
    1 a
    2 b
    3 c

     

    • 리스트나 문자열들의 갯수가 맞지 않은 경우 해당 값은 출력되지 않는다.
    a = [1, 2, 3, 4, 5]
    b = "abc"
    
    for x, y in zip(a, b):
    	print(x, y)
    # 출력
    1 a
    2 b
    3 c

     

     

    서로 길이가 다른 list에 zip() 적용하기

    • zip() 함수를 사용하는데 리스트들의 길이가 서로 다르면 일반적으로 위의 경우처럼 생략되어서 출력이 된다.

    • 하지만 itertools.zip_longest()를 사용하면 해결 할 수 있다.

    from itertools import zip_longest
    
    a = [1, 2, 3, 4, 5]
    b = ["a","b", "c"]
    
    res = list(zip_longest(a, b))
    # [(1, 'a'), (2, 'b'), (3, 'c'), (4, None), (5, None)]
    
    res = list(zip_longest(a, b, fillvalue=0))
    # [(1, 'a'), (2, 'b'), (3, 'c'), (4, 0), (5, 0)]

    fillvalue를 이용해서 None대신 값을 넣어 줄 수 가 있다.

     

     

    dictionary의 최대값, 최소값 찾기

    • Dictionary의 {key: value} 중 value 값으로 최대값과 최소값 찾기
    # zip()를 이용해서 dic의 value값 기준의 최대 최소 찾기
    
    dic = {
      "Kim": 19,
      "Yang": 24,
      "Han": 22
    }
    # {'Kim': 19, 'Yang': 24, 'Han': 22}
    
    min_dic = min(list(zip(dic.values(), dic.keys())))
    # (19, 'Kim')
    
    max_dic = max(list(zip(dic.values(), dic.keys())))
    # (24, 'Yang')

     

     

     

     

     


    참고

    위키독스

    Blog

    python-docs

     

    'Python' 카테고리의 다른 글

    파이썬을 파이썬 답게_3  (0) 2019.11.29
    파이썬을 파이썬답게_2  (0) 2019.11.22
    파이썬을 파이썬답게_1  (0) 2019.09.30
    Python Anaconda 가상환경 설정하기  (0) 2019.08.29
    SyntaxError: Non-ASCII Character 관련 에러  (0) 2019.08.12

    댓글

© 2019 All rights reserved.