리스트와 반복문
리스트(list)란 뭘까?
- 사전적 의미로 "목록"이라는 뜻을 가진 리스트는 파이썬에서 여러 가지 자료를 한 번에 저장할 수 있는 자료형이다. 숫자, 문자, 논리값 등 여러 자료를 하나로 묶어서 저장하고 사용할 수 있게 해주는 특별한 형태의 자료를 말한다.
- 다음 코드는 여섯개의 자료를 가진 리스트를 선언하는 예시이다. 리스트는 대괄호[] 내부에 여러 종류의 자료를 넣어 선언한다. 선언한 리스트를 출력하면 내부의 자료를 모두 출력할 수 있다.
array = [273, 32, 103, "문자열", True, False]
print(array)
# 실핼 결과
[273, 32, 103, '문자열', True, False]
리스트 선언하고 요소에 접근하기
- 파이썬에서 리스트를 생성하는 방법은 대괄호에 자료를 쉼표로 구분해서 입력하다. 대괄호 내부에 넣은 자료를 "요소"라고 하고 영어로는 element라고 부른다.
index(인덱스)
- 01-1. 자료형에서 정리를 했지만 리스트와 반복문에서는 추가적인 부분을 정리한다.
- 리스트의 특정 요소는 변경할 수도 있다. 밑에 코드를 보면 "변경"이라는 문자열을 0번째에 대입하면서 요소를 변경하고 있다.
list_a = [273, 32, 103, "문자열", True, False]
list_a[0] = "변경"
print(list_a)
# 실핼 결과
['변경', 32, 103, '문자열', True, False]
- 리스트는 위와 같은 일반적인 사용법 외에도 다양하게 사용이 가능하다.
대괄호 안에 음수를 넣어 뒤에서부터 선택
- 문자열을 살펴보면서 문자열 뒤에서부터 문자를 선택하는 방법을 배웠지만 리스트도 마찬가지로 대괄호 안에 음수를 넣어 뒤에서부터 요소를 선택할 수 있다.
list_a = [273, 32, 103, "문자열", True, False]
print(list_a[-1])
# 실행 결과
False
print(list_a[-2])
# 실행 결과
True
print(list_a[-3])
# 실행 결과
'문자열'
리스트 연결하기: 연결(+), 반복(*), len()
- 문자열과 리스트는 굉장히 비슷한 자료형으로 사용할 수 있는 연산자와 함수도 비슷하다.
#리스트를 선언한다.
list_a = [1, 2, 3]
list_b = [4, 5, 6]
#출력한다.
print("#리스트")
print("list_a =", list_a)
print("list_b =", list_b)
print()
#기본 연산자
print("# 리스트 기본 연산자")
print("list_a + list_b =", list_a + list_b)
print("list_a * 3=", list_a * 3)
print()
#함수
print("# 길이 구하기")
print("len(list_a) =", len(list_a))
- 2행과 3행은 list_a, list_b에 리스트를 선언한다.
- 7행과 8행은 선언된 리스트를 출력하고
- 13행에서는 연산자 +를 사용해 list_a, list_b의 자료를 연결한다.
- 14행에서는 연산자 \*를 사용해 list_a의 자료를 3번 반복한다.
- len() 함수는 괄호 내부에 문자열을 넣으면 문자열의 글자 수(=길이)를 세어 주지만, 리스트 변수를 넣으면 요소의 개수를 세어준다.
- 19행은 list_a에 들어있는 요소의 개수를 구한다.
- 문자열에 연산자를 적용할 때와 비슷한 결과를 출력 하므로 쉽게 이해할 수 있다.
리스트에 요소 추가하기: append(), insert()
- 리스트에 요소를 추가할 때는 두가지 방법이 있다. 한가지는 append 함수를 활용하는 것으로 리스트 뒤에 요소를 추가한다.
리스트명.append(요소)
- 다른 한가지는 insert 함수를 활용하는 것으로 리스트 중간에 요소를 추가한다.
리스트명.insert(위치, 요소)
- 한번에 여러 요소를 추가하고 싶을때는 extend() 함수를 사용한다. extend() 함수는 매개변수로 리스트를 입력하는데 원래 리스트 뒤에 새로운 리스트의 요소를 모두 추가 해준다.
list_a = [1, 2, 3]
list_a.extend([4, 5, 6])
print(list_a)
# 실행 결과
[1, 2, 3, 4, 5, 6]
- extend() 함수는 마치 append() 함수를 세번 반복 실행한 효과를 가져온다.
리스트에 요소 제거하기
- 리스트의 요소를 제거하는 방법은 크게 두가지로 나뉜다.
인덱스로 제거하기: del 키워드, pop()
- 인덱스로 제거한다는 것은 "리스트의 2번째 요소를 제거해 주세요"처럼 요소의 위치를 기반으로 요소를 제거하는 것이다.
- del 키워드는 구문을 사용하며 리스트의 특정 인덱스에 있는 요소를 제거한다.
del 라스트명[인덱스]
- pop 함수 또한 제거할 위치에 있는 요소를 제거하는데 매개변수를 입력하지 않으면 -1이 들어가는 것으로 취급해서 마지막 요소를 제거한다.
리스트명.pop(인덱스)
값으로 제거하기: remove()
- 두번째 방법은 값으로 제거하는 것이다. 말 그대로 "리스트 내부에 있는 2를 제거해 주세요"처럼 값을 지정해서 제거하는 것이다. 이때는 remove 함수를 사용한다.
리스트.remove(값)
모두 제거하기: clear()
- 리스트 매부의 요소를 모두 제거할 때는 clear 함수를 사용한다.
리스트.clear()
리스트 내부에 있는지 확인하기: in, not in 연산자
- 파이썬은 특정 값이 리스트 내부에 있는지 확인하는 방법을 제공하는데 바로 in 연산자를 활용하는 방법이다.
값 in 리스트
- 리스트 내부에 값이 없으면 True 없으면 False를 출력한다. 추가적으로 not in 연산자도 있다. not in 연산자는 리스트 내부에 해당 값이 없는지 확인하는 연산자로 in 연산자와 정확하게 반대로 동작한다.
for 반목문
- 컴퓨터에 반복을 지시하는 방법이 바로 반복문이다.
- 반복 작업을 시키는 방법은 간단한데 반복할 내용이 있는 코드를 복사하고 원하는 만큼 붙여넣기하면 되는 것이다. 하지만 100번, 1000번 또는 무한하게 반복하고 싶을 때 코드를 계속 붙여넣기 하는 것은 무리다 이럴 때 반복문을 사용하면 매우 편하다. 예를 들어 다음 코드는 출력을 100번 반복한다.
for i in range(100):
print("출력")
for 반복문: 리스트와 함께 사용하기
- for 반복문의 기본 형태는 다음과 같다.
for 반복자 in 반복할 수 있는 것:
코드
- 반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위 등이 있다.