요전에 해시 테이블 할 때 나왔던건데, 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)
키-밸류 쌍을 반복문 줘서 뽑을거면 이렇게 주면 된다.
Reply