리스트에서 연산자를 사용했을 때 결과, 수정 및 변경, 삭제는 어떻게 하는지에 대해서 알아보고, 몇 가지 함수의 사용법에 대해 알아보자.
1. 리스트 연산자 사용
리스트에 는 더하기 연산자와 곱하기 연산자를 사용할 수 있는데 더하기 연산자를 사용하는 경우는 두 리스트를 합치는 기능을 하게 되고, 곱하기의 경우는 반복 생성하게 된다. 아래 예시를 보면서 눈에 익혀보자. 참고로 리스트는 대괄호 안에 들어간다는 것을 기억하자.
a = [1, 2, 3] b = [4, 5, 6] (1번 예제) 더하기 연산자 사용, 두 개의 리스트가 하나의 리스트로 합쳐진 것을 볼 수 있다. [입력값] a + b [출력결과] [1, 2, 3, 4, 5, 6] (2번 예제) 곱하기 연산자 사용, a의 값이 3번 반복해서 나오는 것을 볼 수 있다. [입력값] a * 3 [출력결과] [1, 2, 3, 1, 2, 3, 1, 2, 3] |
2. 리스트 수정/변경, 삭제
리스트의 수정/변경, 삭제는 한 번에 보는 게 알아보는 게 쉽기 때문에 쭉 이어서 보도록 하자. 리스트에서 하나의 값을 수정하는 것은 인덱싱의 개념을 생각하면 쉽고, 여러 요소를 한 번에 변경하려면 슬라이싱의 개념을 이용해야 한다.
또 리스트의 특성이 문자와 숫자를 혼합해서도 담을 수 있다는 것을 알아두어야 한다. 문자와 숫자를 한 번에 담는 게 대수롭지 않게 생각할 수 있지만 과거에 분석이나 IT 쪽에 있던 분들에게는 이게 얼마나 큰 특성인지 알 것이다.
삭제의 경우는 []를 사용해서 삭제가 가능하며, del이라는 명령문으로도 삭제할 수 있다.
a = [1, 2, 3] (1번 예제) 하나의 값만 수정하기, 파이썬은 0부터 순서를 세므로 a[2]인 세번째 값인 3이 4로 변경됨 [입력값] a[2] = 4 a [출력결과] [1, 2, 4] (2번 예제) 여러값 수정하기, [1:2]로 슬라이싱을 하면 맨 마지막 순서는 제외하기 때문에 두번째 값인 2가 'a','b','c'로 변경 [입력값] a[1:2] = ['a', 'b', 'c'] a [출력결과] [1, 'a', 'b', 'c', 4] (3번 예제) []를 이용해서 삭제할 수 있는데, [1:3]를 의미하는 두번째, 세번째 값인 'a','b'를 삭제 [입력값] a[1:3] = [] a [출력결과] [1, 'c', 4] (4번 예제) del을 이용해서 삭제, 두번째 값인 'c'가 삭제 [입력값] del a[1] a [출력결과] [1, 4] |
※ 리스트 수정 시 살펴봐야 하는 것
앞에서 수정 시 a[1:2]를 썼다. 결국 두 번째 값을 변경했다는 건데, 그렇다면 a[1]을 써도 같은 결과가 나오지 않을까라고 생각할 수 있다. 하지만 결과는 전혀 다르게 나타난다. 이렇게 머릿속에서 생각하는 것과 실제 결과가 다르게 나타날 수 있으니 항상 결과 확인하는 습관이 필요하다. 그러면 아래 예제를 보면서 어떻게 다른지에 대해서 알아보자.
(1번 예제)를 보면 슬라이싱 형태로 수정하였는데 a[1:2]는 1에서 2 사이에 있는, 정확히는 두 번째와 세 번째 전까지 있는 리스트의 값을 변경하라는 의미로 두 번째 있는 리스트 값인 2를, a, b, c로 변경하였다.
하지만 (2번 예제)를 보면 두 번째 요소를 다음과 같은 리스트로 변경하라는 의미가 된다. 따라서 두 번째에 있는 2 대신 두 번째 요소로 ['a', 'b', 'c']라는 리스트가 들어가 있는 것을 볼 수 있다.
(1번 예제) a[1:2]를 사용한 경우 [입력값] a = [1, 2, 3] a[1:2] = ['a','b','c'] [출력결과] [1, 'a', 'b', 'c', 3] (2번 예제) a[1]을 사용한 경우 [입력값] a = [1, 2, 3] a[1] = ['a','b','c'] [출력결과] [1, ['a', 'b', 'c'], 3] |
지금은 단편적인 문법에 대해서만 배우고 있어서 금방 눈에 보이고 수정할 수 있지만 나중에 복잡한 코딩을 하는 경우 눈에 잘 보이지 않아 찾아내는데 오랜 시간이 걸리기도 한다. 그래서 이런 작은 차이를 알고 있느냐 모르냐에 따라서 결과에 엄청난 영향을 미칠 수 있고 향후에는 코딩한 것에 대한 검토 시 훨씬 시간을 단축할 수 있다.
'방구석코딩 > 파이썬 기초문법' 카테고리의 다른 글
[파이썬 기초] 튜플 자료형 - 개념, 인덱싱, 슬라이싱 (0) | 2022.05.14 |
---|---|
[파이썬 기초] 리스트 자료형③ - 함수(append, sort, index, insert, pop 등) (0) | 2022.05.12 |
[파이썬 기초] 리스트 자료형① - 개념, 인덱싱, 슬라이싱 (0) | 2022.05.08 |
[파이썬 기초] 문자열 관련함수 (0) | 2022.05.06 |
[파이썬 기초] 문자열 포맷 (0) | 2022.05.04 |
댓글