오늘은 리스트와 반복문을 정리하겠다.
리스트
리스트는 여러가지 자료를 저장할 수 있는 자료이다.
약간 배열과 같은 느낌이지만, C++에서의 배열은 int형 배열이면 int 만, string 형 배열이면 string만 저장할 수 있었지만,
파이썬에서의 리스트는 컨테이너 역할을 하는 느낌이다.
어떤 자료형을 가져와도 각 자료형에 맞게 저장하는 배열이라고 생각하면 편하다.
파이썬에서 리스트 내부에 넣는 자료를 요소라고 하고 영어로는 element라고 부른다.
파이썬을 공부하면서 어짜피 많이 나오는 단어이니 외우거나 알고 있으면 좋다.
# 리스트를 선언합니다
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))
위의 코드처럼 리스트는 [] 대괄호를 이용하여 선언, 삽입한다.
리스트의 기본 연산자는 string 을 사용하는 느낌과 같다.
아니면 파이썬에서 print를 사용 기본 연산과 같다.
위 코드의 출력본이다.
아까도 위에서 설명했지만, 숫자 2 대신 "안녕하세요"를 넣어도 삽입이 stirng 형태로 된다.
이것이 리스트의 특징이자, 장점이다.
리스트는 위와 같은 일반적인 사용법 이외에도 다양하게 사용이 가능하다.
대표적 3가지를 살펴보겠다.
첫째, 대괄호 안에 음수를 넣어 뒤에서부터 요소를 선택할 수 있다.
list_a = [273,32,"문자열",True,False]
list_a[-1]
# 출력 : False
list_a[-2]
# 출력 : True
list_a[-3]
# 출력 : "문자열"
파이썬의 문자열 선택 방법 중에서 음수를 이용하여 뒤에서부터 프린트 하는 방법이 있었다.
그 방법을 리스트에서도 사용이 가능하다.
둘째, 리스트 접근 연산자를 다음과 같이 이중으로 사용할 수 있다.
list_a = [273,32,"문자열",True,False]
list_a[3]
# 출력 : "문자열"
list_a[3][0]
# 출력 : "문"
다차원 배열과 같은 방법으로 이중으로 선택할 경우 그 배열에 위치한 문자의 세부적인 출력까지 선택이 가능하다.
셋째, 리스트 안에 리스트를 사용할 수 있다.
list_a = [[1,2,3], [4,5,6], [7,8,9]]
list_a[1]
# 출력 : [4,5,6]
list_a[1][1]
# 출력 : 5
아까 사용한 이중 사용과 비슷하지만, 이 경우에는 리스트 안에 들어있는 것이 리스트라는 것이 특징이다.
각 방 안에 또 다른 방이 들어가 있는 것과 같다.
또 이 방들을 세부적으로 선택이 가능하다.
리스트에 요소 추가하기
# 리스트에 요소 추가하기
# 파괴적 처리 함수
# append(), insert(), extend()
# 리스트를 선언합니다
list_a = [1,2,3]
# 리스트 뒤에 요소 추가하기
print('# 리스트 뒤에 요소 추가하기')
list_a.append(4)
list_a.append(5)
print(list_a)
print()
# 리스트 중간에 요소 추가하기
print('# 리스트 중간에 요소 추가하기')
list_a.insert(0,10) # 0 번째 배열에 10 추가하기
print(list_a)
# 한번에 여러 요소 추가하기
print('# 한번에 여러 요소 추가하기')
list_a.extend([4,5,6]) # extend는 파괴적 처리다. 반면 list_a + list_b 의 경우 단순히 연결만하고 하나하나의 리스트에는 타격이 가지 않는다.
print(list_a)
리스트에 요소를 추가하는 방법은 append() 와 insert() 가 있다.
append() 는 리스트 뒤에 요소를 추가한다.
insert()는 리스트의 중간에 요소를 추가하는 것이다.
각각의 매개변수 또한 다른데,
append()는 요소만,
insert()는 위치와 요소가 필요하다.
또 다른 방법으로
extend()가 있는데, 한번에 여러 요소를 추가할 수 있다.
위 코드의 컴파일 출력본이다.
리스트에 요소 제거하기
반대로 요소들을 제거하는 방법에 대해 알아보겠다.
# 리스트 연결 연산자와 요소 추가의 차이
# del 방법과 pop 방법
list_a = [0,1,2,3,4,5]
print('# 리스트 요소 하나 제거하기')
# 제거 방법[1] - del
del list_a[1]
print("del list_a[1] : ", list_a)
# 제거 방법[2] - pop()
list_a.pop(2) # 매개변수로 아무것도 입력하지 않으면, 가장 뒤쪽에 있는 숫자가 제거 된다.
print("pop(2) : ", list_a)
# 값으로 제거하기
list_c = [1,2,1,2]
list_c.remove(2) # 리스트의 요소를 값으로 제거하기
list_c.remove(2) # 내부에 여러개가 있어도 가장 먼저 발견되는 하나만 제거한다.
print(list_c)
# 모두 제거하기
list_c.clear()
print(list_c)
제거 방법에는 del과 pop이 존재한다.
del은 특정 인덱스에 있는 요소를 제거한다.
pop도 특정 인덱스에 있는 요소를 제거하지만, 매개변수에 아무것도 넣지 않으면 마지막 요소를 제거하게 된다.
remove는 매개변수로 주어진 수를 찾아 제일 먼저 발견되는 것을 제거한다.
마지막 clear는 모두 제거하는 것이다.
위 코드를 컴파일한 모습이다.
for 반복문
# for 반복문과 리스트
# 리스트를 선언합니다
array = ["안녕하세요", "Hello"]
# 리스트에 반복문을 적용합니다
for element in array :
print(element)
for반복문으로 리스트를 출력시켜본 코드이다.
for 반복문의 사용방법은,
for 반복자 in 반복할 수 있는 것 :
코드
이다.
이 때 반복자의 이름은 아무것이나 상관이 없다.
하지만, 당장 자신이 봐도 반복자의 이름이 헷갈리거나 왜 이렇게 지었는지 의문이 들게끔은 작성하지 않았으면 한다.
위 코드를 컴파일하여 출력한 결과이다.
정리
리스트는 여러 가지 자료를 저장할 수 있는 자료형을 말한다.
요소는 리스트 내부에 있는 각각의 내용을 의미한다.
인덱스는 리스트 내부에서 값의 위치를 의미한다.
for반복문은 특정 코드를 반복해서 실행할 때 사용하는 기본적인 구문이다.
'Programming > Python' 카테고리의 다른 글
10. 반복문과 while 반복문 (0) | 2021.03.14 |
---|---|
9. 딕셔너리와 반복문 (0) | 2021.03.12 |
7. 조건문 (0) | 2021.03.10 |
6. 숫자와 문자열의 다양한 기능 (0) | 2021.03.08 |
5. 변수와 입력 (0) | 2021.03.07 |
댓글