파이썬 데이터 묶기 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' 카테고리의 다른 글

파이썬 조건문, 반복문, 예외처리  (1) 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
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바