본문 바로가기
Coding/Python

zip이란 무엇인가

by Lv. 34 라이츄 2023. 8. 4.

요전에 해시 테이블 할 때 나왔던건데, zip이 뭔지 한번 알아보는 시간을 가져보자. enu뭐시기도 나중에 알아볼거니까 안심하시고.


molecule_name = ["Ethanol", "Glucose", "Methanol"]
molecule_formula = ["C2H5OH", "C6H12O6", "CH3OH"]

여기 길이 3인 1차원 배열 두 개가 있다. 이 배열 두 개를 하나로 묶고 싶은데 그럼 어떻게 하나요?

 

molecular_list = zip(molecule_name,molecule_formula)

for i in molecular_list:
    print(i)

zip()으로 묶어주면 알아서 튜플로 변환해준다.

 

molecule_name = ["Ethanol", "Glucose", "Methanol", "Formaldehyde"]
molecule_formula = ["C2H5OH", "C6H12O6", "CH3OH"]

솔직히 여기서 궁금했던 사람 있을텐데, 그럼 배열 두 개가 길이가 다르면 어떻게 될까? 앞에서부터 짝이 맞는 애들끼리 묶기때문에 뒤에 있는 포름알데히드가 빠져있는 것을 알 수 있다. zip()으로 리스트를 묶을 때는 두 리스트의 0번-0번, 1번-1번 이런 식으로 순차적으로 묶기 때문에 중간에 데이터가 빠져버리면 아 망했어요가 된다.

 

molecule_name = ["Ethanol", "Glucose", "Methanol", "Formaldehyde"]
molecule_formula = ["C2H5OH", "C6H12O6", "CH3OH", "HCHO"]

molecular_list = dict(zip(molecule_name,molecule_formula))

이런 식으로 딕셔너리로 묶을 수도 있다. 그럼 이거 키랑 밸류 같이 뽑고 싶으면 어떻게 하냐고?

 

print(molecular_list)

딕셔너리는 위처럼 반복문 주면 키만 나오고, 전체 다 뽑을거면 이렇게 해야 한다. 

for i, j in molecular_list.items():
    print(i, j)

키-밸류 쌍을 반복문 줘서 뽑을거면 이렇게 주면 된다.

'Coding > Python' 카테고리의 다른 글

Python으로 연결 리스트 구현하기  (0) 2023.09.05
enumerate에 대해 알아보자  (0) 2023.08.05
Python으로 해시 테이블 만들어보기  (0) 2023.08.02
Python의 예외처리  (0) 2023.06.24
n진수->10진수 코딩하기  (0) 2023.06.16

최근댓글

최근글

skin by © 2024 ttutta