본문 바로가기

파이썬/사용법

[python] 파이썬 리스트 자료형 for 문에서의 활용

안녕하세요!

이번 글에서는 파이썬의 리스트를 for문에서 활용하는  방법에 대해서

알아보려고 합니다.

 

1) 모든 값에 순차적으로 접근 (일반적인 사용):

2) zip()활용하여 리스트 여러개 접근

3) 모든 값에 순차적으로 접근 enumerate(iterable,start=0) 인덱스도 가져오기:
4) 리스트 컴프리핸션 list comprehension:

 

순서로 알아보겠습니다.

 


1) 모든 값에 순차적으로 접근 (일반적인 사용):

mylist = ['a', 'b', 'c', 'd', 'e', 'f']

# for 루프를 사용하여 리스트의 요소를 순차적으로 접근
for alphabet in mylist:
    print(alphabet)

# a
# b
# c
# d
# e
# f

mylist에서 하나씩 순차적으로 가져와서 alphabet에 넣고 원하는 문장을 실행하는 statement입니다.

 

2)  zip()활용하여 리스트 여러개 접근

dayofweek = ["월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]
menu_list = ["제육볶음","짜장면","짬뽕","볶음밥","김치찌개"]

for day,menu in zip(dayofweek,menu_list):
    print(f'오늘은 {day}이니까 {menu} 먹어야지')

# 오늘은 월요일이니까 제육볶음 먹어야지
# 오늘은 화요일이니까 짜장면 먹어야지
# 오늘은 수요일이니까 짬뽕 먹어야지
# 오늘은 목요일이니까 볶음밥 먹어야지
# 오늘은 금요일이니까 김치찌개 먹어야지

for NAME1,NAME2,NAME3 in zip(사용할 리스트1,사용할 리스트2,사용할 리스트3): 

형식으로 사용합니다.

제일 짧은 리스트 기준으로 Stopiteration 발생하면 loop를 종료합니다.

 

 

3) 모든 값에 순차적으로 접근 enumerate(iterable,start=0) 인덱스도 가져오기:

mylist = ['a', 'b', 'c', 'd', 'e', 'f']

# for 루프를 사용하여 리스트의 요소를 순차적으로 접근
for index,alphabet in enumerate(mylist, start=0):
    print(index, alphabet)

# 0 a
# 1 b
# 2 c
# 3 d
# 4 e
# 5 f

for index, alphabet in zip(range(0,len(mylist)),mylist) 이런 식으로 만들어도 되지만

enumerate()를 활용하는 것이 더 가독성이 있습니다.

start = num 은 임의의 숫자로 지정할 수 있습니다.

 

 

 

4) 리스트 컴프리핸션 list comprehension:

# [x for x in iterable if 조건(x)]

squared = [num ** 2 for num in range(1,11)]
print(squared)  # 출력 결과: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

squared= [num ** 2 for num in range(1,11) if num % 2 == 0] # True인 것 리턴 짝수 리턴
print(squared) # [4, 16, 36, 64, 100]

variable_name = [x for x in iterable if 조건(x)]

iterable한 객체에서 순사적으로 x에 가져와서 조건에서 거른후  담아서 variable_name로 리스트를 리턴합니다

 

리스트 컴프리핸션을 사용하면 빠르게 리스트를 생성할 수 있습니다.

 

 


정리)

1) 모든 값에 순차적으로 접근 (일반적인 사용):

for name1 in list:

    문장

형식으로 사용한다.

 

2) zip()활용하여 리스트 여러개 접근

for name1,name2 in zip(list1,list2):

    문장

형식으로 사용한다.

제일 요소가 적은  리스트가 StopIteration 발생되면 종료한다

 

3) 모든 값에 순차적으로 접근 enumerate(iterable,start=0) 인덱스도 가져오기:

for index,name1 in enumerate(list1,start=0):

    문장

형식으로 사용한다.

start 임의로 지정가능하다.

기본값 0부터 시작한다.


4) 리스트 컴프리핸션 list comprehension:

variable_name = [x for x in iterable if 조건] 형식으로 사용하며 

리스트를 한문장으로 생성가능하다.

 

마치면서)

파이썬 공식 문서에서 Looping Techniques로 예제를 찾아보시면 더욱 자세한 정보를 얻을 수 있습니다. 

다음 글에서도 유용한 파이썬 팁과 기능을 소개하도록 하겠습니다

감사합니다.