반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터분석
- Seaborn
- 영국석사
- 윈도우함수
- 코드잇
- 코드잇 TIL
- 결정트리
- 다항회귀
- SQL
- 머신러닝
- 런던
- 로지스틱회귀
- matplotlib
- 코딩공부
- 판다스
- numpy
- 행렬
- 코딩
- 선형회귀
- 유학생
- 파이썬
- 오늘도코드잇
- 코딩독학
- HTML
- 나혼자코딩
- CSS
- sql연습문제
- 코드잇TIL
- for반복문
- 경사하강법
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) for 반복문, range 함수, for 반복문 이용해서 리스트 변경하기 본문
728x90
반응형
파이썬에는 for 반복문과 while 반복문이 있습니다. 먼저, 이번글에서는 iterable(반복가능한) 것을 순회하는데 사용할 수 있는 for 반복문에 대해 알아보겠습니다.
- iterable : 요소들을 한 번에 하나씩 반환할 수 있는 객체 => 딕셔너리, 문자열, 리스트, 튜플
1. for 반복문
- 아래의 예시에서 리스트 cities 를 사용하여 for 반복문을 알아보겠습니다.
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
for city in cities:
print(city)
print("Done!")
>>> new york city
mountain view
chicago
los angeles
Done!
- 반복문의 첫번째 줄은 키워드 for로 시작하고, 이것이 for 반복문임을 나타냅니다.
- 그 다음에는 city in cities 가 나와서 city 가 반복 변수이며, cities가 반복되는 iterable 이라는 점을 나타냅니다. 반복문이 처음 반복될 때 city 는 citeis의 첫 번째 요소의 값인 "new york city"를 받습니다.
- for 반복문의 시작은 항상 콜론(:)으로 끝납니다.
- for 반복문의 시작 줄 뒤에는 들여쓰기가 된 코드 블록인 반복문 바디가 나옵니다. 이 반복문이 매번 반복될 때 마다 그 블록이 실행됩니다. 위의 예시에는 바디가 print(city) 한 줄만 있습니다.
- 반복문의 바디가 실행된 다음에는 다음 줄로 넘어가지 않고 다시 for 시작 줄로 돌아가서 반복 변수가 iterable의 다음 요소의 값을 취합니다. 위의 반복문이 두번째 반복될 때 city 는 cities 의 다음 요소인 mountain view를 취합니다.
- 이러한 과정의 반복문은 iterable의 모든 요소를 반복할 때까지 반복됩니다.
- 그 다음 반복문의 바디 다음에 있는 줄인 print("Done!")으로 넘어갑니다. 들여쓰기가 되어 있지 않기 때문에 우리는 반복문 바디 다음 줄이 무엇인지 알수 있습니다.
- 반복 변수의 이름은 원하는대로 작성할 수 있으나, 일반적인 패턴은 반복 변수와 이터러블 이름을 갖게 하는 것입니다. 각각 단수형과 복수형을 씁니다.
2. for 반복문과 함께 range() 함수 사용하기
- range()는 반복 가능한 일련의 숫자를 만드는데 사용하는 내장 함수입니다.
- 일정한 횟수로 동작을 반복하기 위해 for 반복문과 함께 range()를 자주 사용합니다.
- 숫자를 반복하기 위해 어떤 변수도 사용할 수 있지만 프로그래머들은 관행적으로 i를 사용합니다.
for i in range(3):
("Hello!")
>>> Hello!
Hello!
Hello!
- range(start=0, stop, step=1)
- range() 함수는 3개의 정수 인수를 받습니다.
- 첫 번째와 세 번째는 선택사항 입니다.
- start : 수열의 첫 번째 숫자, 지정하지 않으면 기본값은 0이 됩니다.
- stop : 수열의 마지막 숫자보다 1만큼 큽니다. 반드시 지정해야 하는 인수입니다.
- step : 수열에 있는 각 숫자들 사이의 차이, 지정하지 않으면 기본값은 1이 됩니다.
for i in range(4)
print(i)
>>> 0, 1, 2, 3
for i in range(2, 6)
print(i)
>>> 2, 3, 4, 5
for i in range(1, 10, 2)
print(i)
>>> 1, 3, 5, 7, 9
3. 리스트 만들기와 변경하기
- for 반복문을 사용하여 리스트에서 정보를 추출할 뿐만 아니라 리스트를 만들고 변경할 수 있습니다.
- 아래와 같이 반복문을 매번 반복할 때 새 리스트를 추가하여 리스트를 만들 수 있습니다.
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
capitalized_cities = []
for city in cities:
capitalized_cities.append(city.title())
- 리스트를 변경하는 방법은 range() 함수를 사용해야 합니다.
- range() 함수를 사용하여 cities 리스트의 각 값에 대한 인덱스를 생성할 수 있습니다.
- cities[index]를 사용하여 리스트의 요소에 액세스해서 cities 리스트 안의 값을 변경할 수 있습니다.
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
for index in range(len(cities)):
cities[index] = cities[index].title()
print(cities)
>>> ['New York City', 'Mountain View', 'Chicago', 'Los Angeles']
4. 예시
문제1) 리스트의 .append 메서드 이용
- names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]를
- names = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]로 바꾸시오.
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
for name in names:
usernames.append(name.lower().replace(" ", "_"))
print(usernames)
>>> ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]
★주의★
- 위의 경우 처럼 새 리스트를 만드는게 아니라 names 리스트를 수정한다고 하면 수정되지 않습니다.
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
for name in names:
name = name.lower().replace(" ", "_")
print(names)
- for 반복문 안에서 name 변수를 변경하면 그 값이 변환되지만, name 변수는 names 의 원소와 독립적인 변수입니다.
- 따라서 name 변수를 변경해도 원본 리스트인 names의 요소는 변하지 않습니다.
- 원본 리스트 names 를 수정하려면 인덱스를 사용하여 리스트의 요소에 직접 접근해야 합니다.
- 문제2번 처럼 하면 됩니다.
문제2) range() 이용
- usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]를
- usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]로 바꾸시오.
usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
for i in range(len(usernames)):
usernames[i] = usernames[i].lower().replace(" ", "_")
print(usernames)
>>> ['joey_tribbiani', 'monica_geller', 'chandler_bing', 'phoebe_buffay']
문제3) XML 태그는 "<"로 시작하고 ">"로 끝나는 문자열로 식별할 수 있습니다. 다음 tokens 에서 XML 언어인 태그의 개수를 저장하는 변수를 count로 설정하고 count의 개수를 구하는 코드를 작성하시오.
tokens = ['<greeting>', 'Hello World!', '</greeting>']
count = 0
for token in tokens:
if token[0] == '<' and token[-1] == '>':
count += 1
print(count)
>>> 2
문제4) items = ['first string', 'second string'] 를 html_str =
<ul>
<li>first string</li>
<li>second string</li>
</ul>
로 바꾸시오.
items = ['first string', 'second string']
html_str = '<ul>\n'
for item in items:
html_str += '<li>{}</li>\n'.format(item)
html_str += '</ul>'
print(html_str)
>>> <ul>
<li>first string</li>
<li>second string</li>
</ul>
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) while 반복문 개념 및 예시, for 반복문과 차이점 (0) | 2024.06.10 |
---|---|
(파이썬) for 반복문과 get 메소드로 딕셔너리(dictionary) 만들기, items로 키와 값 쌍 얻기 (1) | 2024.06.08 |
(파이썬) 조건문 if, elif, else 문 (0) | 2024.06.07 |
(파이썬) 딕셔너리(dictionary)와 동일성 연산자 is, is not, get 메소드 복합 데이터 구조 알아보기 (0) | 2024.06.05 |
(파이썬) 데이터 구조 유형 중 튜플(tuple)과 세트(set) 개념 쉽게 알아보기 (0) | 2024.06.05 |