파이썬 데이터 묶기 zip()

2022. 11. 18. 18:30·파이썬/Basic
반응형
zip() 함수란??

zip 함수는 여러 개의 순회 가능한 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플 형태로 반환합니다

저는 zip 함수를 보면 압축 파일 형태가 생각나는데요 이렇게 생각하시면 이해하시기 쉬울것입니다

score = [70,65,90]
name = ['철수','영희','진수']

for pair in zip(score,name):
    print(pair)
위 코드를 실행하면 이러한 결과물이 나옵니다
(70, '철수')
(65, '영희')
(90, '진수')

감이 오시나요?? 같은 인덱스에 있는 데이터를 묶어서 짝을 지어줍니다

 

저장
score = [70,65,90]
name = ['철수','영희','진수']

total_list = list(zip(score,name))
total_dict = dict(zip(score,name))

print(total_list)
print(total_dict)

>>  [(70, '철수'), (65, '영희'), (90, '진수')] # total_list
>>  {70: '철수', 65: '영희', 90: '진수'} # total_dict

zip으로 묶은 데이터를 원하는 자료형으로 형 변환을 해주면 됩니다. (튜플도 가능합니다)

 

주의사항

zip 함수로 넘기는 인자의 길이가 다를 경우 가장 짧은 인자 기준으로 데이터가 묶이고 나머지는 버려집니다

score = [70,65,90,100,56]
name = ['철수','영희','진수']

print(list(zip(score,name)))

>> [(70, '철수'), (65, '영희'), (90, '진수')]

score = [70,65,90]
name = ['철수','영희','진수']

total_list = zip(score,name)

print(total_list)

>> <zip object at 0x0000019C38D57900>

형변환을 해주지 않으면 zip 클래스의 객체로 표시됩니다

언패킹(unpacking)

묶인 인자를 다시 풀어줄수 있는데요 

score = [70,65,90]
name = ['철수','영희','진수']

total_list = list(zip(score,name))

un_score,un_name = zip(*total_list)
print(un_score,un_name)

>> (70, 65, 90) ('철수', '영희', '진수')

unzip이라는 함수는 존재하지 않구요 오퍼레이터(*)를 사용해 unzip의 효과(?)를 낼 수 있습니다. 

응용
score = [70,65,90]
name = ['철수','영희','진수']

total_list = sorted(zip(score,name))

print(total_list)

>> [(65, '영희'), (70, '철수'), (90, '진수')]

데이터를 정렬해 리스트로 반환하는 sorted를 사용해 점수가 낮은 순으로 정렬했습니다. ( sorted는 기본적으로 배열의 첫번째 요소 기준으로 정렬합니다)

 

score = [70,65,90]
name = ['철수','영희','진수']

total_list = sorted(zip(score,name), key= lambda x : x[1])

print(total_list)

>> [(65, '영희'), (90, '진수'), (70, '철수')]

람다식을 이용해 name 변수 기준으로 정렬도 가능합니다. 

 

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > Basic' 카테고리의 다른 글

파이썬 조건문, 반복문, 예외처리  (0) 2023.03.20
파이썬 파일 및 폴더 다루기 : OS모듈  (0) 2022.11.18
파이썬 리스트 자료형 정복  (0) 2022.11.16
파이썬 답게 코딩해보자 if condition  (0) 2022.11.13
파이썬 답게 코딩해보자 List comprehension  (0) 2022.11.12
'파이썬/Basic' 카테고리의 다른 글
  • 파이썬 조건문, 반복문, 예외처리
  • 파이썬 파일 및 폴더 다루기 : OS모듈
  • 파이썬 리스트 자료형 정복
  • 파이썬 답게 코딩해보자 if condition
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (545) N
      • 상품 추천 (54) N
      • MongoDB (4)
      • 하드웨어 (9)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (128) N
        • Basic (41) N
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50) N
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    codingtips
    스크립트 실행
    카페24리뷰
    라떼우유
    리뷰관리
    리스트
    믈레코비타멸균우유
    devlife
    programmerlife
    C#
    유니티
    codingcommunity
    카페24리뷰이관
    list
    파이썬
    Python
    unity
    스마트스토어리뷰
    셀레니움
    상품 리뷰 크롤링
    리뷰이관
    appdevelopment
    programming101
    쇼핑몰리뷰
    긴유통기한우유
    rtsp
    cv2
    ipcamera
    스크립트 실행 순서
    learntocode
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
파이썬 데이터 묶기 zip()
상단으로

티스토리툴바