from random import randint
random_bits = 0
for i in range(32):
if randint(0,1):
random_bits != 1 << i
print(bin(random_bits)) #0b110100010010000111000010000001
flavor_list = ['바닐라'. '초콜릿', '피칸', '딸기']
for flavor in flavor_list:
print(f'{flavor} 맛있어요.')
#결과
바닐라 맛있어요
초콜릿 맛있어요
피칸 맛있어요
딸기 맛있어요
for i in range(len(flavor_list)):
flavor = flavor_list[i]
print(f'{i + 1}: {flavor}')
#결과
1: 바닐라
2: 초콜릿
3: 피칸
4: 딸기
위의 예시들을 보면 어떤 생각이 드시나요?
코드가 투박해 보이고 리스트의 길이, 인덱스 사용을 위한 배열 원소등을 알아야하는 귀찮음도 보입니다. 그래서, 이것의 해결책을 파이썬에서 제공합니다. 바로 enumerate내장 함수 사용하기입니다.
it = enumerate(flavor_list)
print(next(it))
print(next(it))
#결과
(0, '바닐라')
(1, '초콜릿')
for i flavor in enumerate(flavor_list):
print(f'{i+1}: {flavor}')
#결과
1: 바닐라
2: 초콜릿
3: 피칸
4: 딸기
for i, flavor in enumerate(flavor_list, 1):
print(f'{i}: {flavor}')
enumerate를 사용하면 이터레이터에 대해 루프를 돌아서 이터레이터에서 가져오는 원소의 인덱스까지 얻는 코드를 간결하게 작성 가능
range에 대해 루프를 돌면서 시퀀스의 원소를 enumerate를 사용
enumerate의 두 번째 파라미터로 어디부터 원소를 가져오기 시작할지 지정(디폴트 값은 0이다.)