-
[python] zip, enumerate: 영상으로 설명Python 2022. 8. 3. 22:49
0. 들어가며
zip(), enumerate()
파이썬에서 종종 등장하는 문법입니다.
프로그래밍이 익숙하지 않은 분들도 그렇고, 다른 언어를 써보신 분들도 파이썬을 처음 쓰는 사람들한테는 조금 어렵게 다가올 수 있습니다.
C같은 low level문법을 쓰던 분들은 sizeof나 i를 이용한 indexing이 익숙한데 파이썬에서는 이런 것들을 쉽게 해준답시고 새로운 문법을 외우게 하고는 쉬운 문법이라고 포장하는게 아주 한대 쥐어박고 싶습니다 :)
1. zip()
zip 함수는 여러 리스트(반복가능 객체)를 받아서 그 안의 아이템을 하나씩 꺼내줍니다.
사용 예)
A = [1, 2, 3 ]
B = ["q", "w", "e"]
C = [10, 11, 12]
for a, b, c in zip(A, B, C):
print(a, b, c)
이 코드에서 A, B, C에서 각각 처음부터 하나씩 꺼내와서 a, b, c에 대입합니다.
그 결과는
1 q 10
2 w 11
3 e 12
가 됩니다.
그럼 만약에
A = [1]
B = ["q", "w", "e"]
C = [10, 11, 12]
for a, b, c in zip(A, B, C):
print(a, b, c)
이 코드는 어떨까요?
zip에 들어가는 리스트의 길이가 각각 다릅니다.
그러면 저 1 뒤에는 어떻게 a에 꺼내질지가 관건인데요.
결과는
1 q 10
입니다.
zip 함수는 zip 입력 리스트 중에서 제일 길이가 짧은 것까지만 반복하며 그 외 길이가 더 긴 부분은 버립니다.
2. enumerate()
enumerate는 보통 enumerate(리스트) 형태로 사용하는데요,
A = ["enu", "mer", "ate"]
for i, a in enumerate(A):
print(i, a)
를 실행시키면, 어떻게 될까요?
결과는
0 enu
1 mer
2 ate
입니다.
ㅇㅁㄴㅇㄹ나는 반복의 첫 번째를 0부터 시작해서 i는 1씩 늘어나는 것입니다.
즉,
A = ["enu", "mer", "ate"]
for i in range(len(A)):
a = A[i]
print(i, a)
를 실행한 것과 동일한 결과를 얻습니다.
그런데,
A = ["enu", "mer", "ate"]
for i, a in enumerate(A, 3):
print(i, a)
는 어떻게 될까요? 3이 아주 신경쓰입니다.
enumerate의 두 번째 입력에 int값를 넣으면, 0이 아니라, 그 숫자부터 시작해서 1씩 늘어나는 반복을 수행합니다.
영상 설명:
https://www.youtube.com/watch?v=EIudcNIW054
'Python' 카테고리의 다른 글
날씨예보 API 접근법 및 파이썬 활용 코드 (0) 2022.08.16 코딩 테스트 - 재귀함수의 함정(+영상 설명) (0) 2022.08.03 [python] 파일 목록 얻는 방법 - 영상 설명 (glob / os.walk) (0) 2022.04.09 [python] **kwargs가 뭐지? 영상으로 설명 (0) 2022.03.27 엑셀 파일들 내맘대로 병합하는 법(영상)[엑셀에 엑셀달기] (0) 2022.03.27