티스토리 뷰
파이썬에서는 아주 간결하게 한 줄로 된 for 반복문을 이용할 수 있습니다. 반복 대상 항목을 하나씩 순회하면서 변수에 저장하고 그 변수를 사용자가 원하는 동작을 수행하는 방식이며 생김새는 이렇습니다.
[변수로 어떤 동작 for 변수 in 반복대상] |
예를 들어서 나도고등학교에서는 출석번호가 1, 2, 3, 4, 5, ... 이렇게 되어 있었는데 새학기부터는 각 번호에 100을 더한 형태로, 즉, 101, 102, 103, 104, 105, ... 이렇게 바뀐다고 합니다. 우선 리스트에 5개의 출석번호 [1, 2, 3, 4, 5] 를 저장한 상태에서 한 줄 for 를 이용하여 변형을 해보겠습니다.
students = [1, 2, 3, 4, 5]
print(students) # [1, 2, 3, 4, 5]
# 한 줄 for 를 이용하여 각 항목에 100 을 더함
students = [i + 100 for i in students]
print(students) # [101, 102, 103, 104, 105]
한 줄 for 를 사용하는 부분을 자세히 살펴볼까요?
다음 문장을 해석하면, 반복대상인 students 리스트에서 하나씩 값을 가져와서 i 라는 변수에 저장하고, 그 변수를 활용하여 i + 100 이라는 명령을 실행한 값들을 새로운 리스트로 만들어서 students 에 집어넣는 의미입니다.
students = [i + 100 for i in students] |
조금 더 풀어서 적어보면 다음 문장과 같은 동작을 합니다.
students = [students[0] + 100, students[1] + 100, students[2] + 100, students[3] + 100, students[4] + 100] |
students 의 각 인덱스에 해당하는 실제 값으로 풀어보면 이렇겠네요.
students = [1 + 100, 2 + 100, 3 + 100, 4 + 100, 5 + 100] |
다시 정리하면, 반복 대상 항목의 값들에 대해서 각각 어떤 동작을 수행하고, 수행한 결과들을 모아서 새로운 리스트로 만드는 것입니다.
잠깐! 이 때 사용된 i 는 사용자가 임의로 사용한 이름이며, 다른 이름을 사용해도 됩니다. 다만 그 이름이 "변수" 위치와 "변수로 어떤 동작" 위치에 동일하게 사용되어야 한다는 점만 주의해주세요 (예) students = [x + 100 for x in students] students = [name + 100 for name in students] |
다른 예제를 들어보겠습니다. 이번에는 이름이 저장된 리스트가 있는데 한 줄 for 를 이용하여 각 이름의 길이 정보를 가지는 리스트로 변형해보겠습니다.
students = ["Iron man", "Thor", "I am groot"]
print(students) # ["Iron man", "Thor", "I am groot"]
# 한 줄 for 를 이용하여 각 이름의 길이 정보로 변환
students = [len(i) for i in students]
print(students) # [8, 4, 10]
띄어쓰기를 포함한 각 이름의 길이는 "Iron man" 은 8, "Thor" 는 4, "I am groot" 는 10이며 이 값들이 새로운 리스트로 만들어져서 students 에 저장되는 코드입니다.
students = [len(i) for i in students] |
위 코드를 풀어서 적어보면 이렇게 되겠네요.
students = [len(students[0]), len(students[1]), len(students[2])] |
students 의 각 인덱스에 해당하는 실제 값으로 풀어볼까요?
students = [len("Iron man"), len("Thor"), len("I am groot")] |
예제를 하나만 더 들어보겠습니다. 이름 정보를 가지는 동일한 리스트를 사용하되, 각 이름을 모두 대문자로 바꿔보겠습니다.
students = ["Iron man", "Thor", "I am groot"]
print(students) # ["Iron man", "Thor", "I am groot"]
# 한 줄 for 를 이용하여 각 이름을 대문자로 변경
students = [i.upper() for i in students]
print(students) # ['IRON MAN', 'THOR', 'I AM GROOT']
이제는 조금 익숙하죠?
이 코드가 어떻게 동작하는지, 풀어서 적어보면 어떻게 되는지 여러분께서 직접 해석을 해보시면 좋겠습니다.
'파이썬 강의 > 기본편' 카테고리의 다른 글
[파이썬 기본편] 7-1.함수 (3) | 2021.02.21 |
---|---|
[파이썬 기본편] 6-6.퀴즈 #5 (14) | 2021.02.20 |
[파이썬 기본편] 6-4.continue 와 break (3) | 2021.02.18 |
[파이썬 기본편] 6-3.while (2) | 2021.02.17 |
[파이썬 기본편] 6-2.for (0) | 2021.02.16 |
- Total
- Today
- Yesterday
- 비주얼 스튜디오 코드
- Mac
- pycharm
- Colab
- 코랩
- Xcode
- Coding
- vscode
- Visual Studio Code
- game
- pygame
- 아나콘다
- 나도코딩
- repl.it
- 환경설정
- GUI
- 행맨
- c언어
- Tkinter
- onlineclass
- coloso
- 파이게임
- 파이썬
- Unity
- 주피터노트북
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |