[Python, 기초 문법] 자료형(Data Type) (3) - List, 요소 추가
이전 포스트에서 리스트의 설명과 인덱싱, 슬라이싱에 대해 알아보았습니다.
이제 리스트의 요소 추가에 대해 알아봅시다.
리스트 사칙연산
간단한 사칙연산으로 리스트 내부에 새로운 요소를 추가할 수 있습니다.
아래 코드를 입력해봅시다. 새로운 리스트를 생성하고,
리스트에 새로운 값을 이어 붙이는 코드입니다.
a = [1] a = a + [2] print(a) a = [-1, 0] + a print(a)
[1, 2] [-1, 0, 1, 2]
새로이 리스트를 생성하고, 내부 요소로 1을 넣었습니다.
그리고 그 리스트 뒤에 [2]라는 새로운 리스트를 연결하여
[1, 2]라는 리스트가 만들어졌고,
[1, 2] 앞에 [-1, 0] 리스트를 붙여 [-1, 0, 1, 2] 리스트를 만드는 모습입니다.
위의 리스트에 곱하기 연산을 진행해봅시다.
a * 2
[-1, 0, 1, 2, -1, 0, 1, 2]
[-1, 0, 1, 2] 가 한 번 더 붙는 모습을 볼 수 있습니다.
이렇게 리스트는 사칙연산으로 요소를 추가할 수 있지만,
더하기의 경우 리스트 끼리만 사용할 수 있고,
곱하기의 경우 리스트와 정수형 숫자로만 연산이 가능하여
사용하는데 많은 제약이 있음을 알 수 있습니다.
또한 리스트는 빼기나 나누기는 아예 사용할 수 없다는 특징을 가지고 있습니다.
append, extend, insert
리스트에 요소를 추가하는 제일 기본적인 기능인
append 와 extend, insert에 대해 알아봅시다.
먼저 append는 리스트 class가 가지고 있는 내장 함수로,
(쉽게 리스트 형태의 데이터들은 이런 기능을 사용할 수 있다 정도로만 이해하시면 되겠습니다.)
리스트에 새로운 요소를 추가할 수 있는 함수입니다.
아래의 코드를 실행해봅시다.
a = [1,2,3] a.append(4) a.append(5) print(a)
[1, 2, 3, 4, 5]
리스트 뒤에 .append()를 입력하고,
괄호안에 리스트에 넣고 싶은 값을 입력하면 됩니다.
append는 반환하는 값이 없으므로
이전에 사칙연산 할 때 처럼 새로이 변수에 바뀐 리스트를 대입할 필요는 없습니다.
append를 씀으로써 결과값이 a 리스트에 그대로 추가되는 모습을 볼 수 있습니다.
이전에 설명을 못드렸지만,
리스트 안에는 동일한 타입만 들어갈 필요는 없습니다.
아래 코드를 실행해봅시다.
a = [1,2] a.append("안녕") a.append([5,10]) print(a) print(a[3][1])
[1, 2, '안녕', [5, 10]] 10
한 리스트 안에 숫자든, 문자든, 그리고 또 새로운 리스트 든
아무 형태나 들어갈 수 있습니다.
그리고 리스트 안에 리스트가 들어가있는 '다중 리스트'의 경우,
인덱싱을 하고 추가로 인덱싱을 하여
내부 리스트의 값에 접근할 수도 있습니다.
다양한 데이터를 보관할 수 있으므로
잘만하면 효율적으로 데이터를 관리할 수도 있겠습니다.
다음은 extend 입니다.
extend는 더하기 연산과 기능이 똑같다고 보시면 됩니다.
리스트끼리 연산하며, append 마냥 다중 리스트로 들어가버리는 게 아닌
리스트가 확장되는 것을 볼 수 있습니다.
아래 코드를 실행해봅시다.
a = [1, 2, 3] b = [4, 5, 6] a.extend(b) print(a)
[1, 2, 3, 4, 5, 6]
extend도 append와 마찬가지로
수정된 결과를 반환하지 않고 그대로 적용되므로
따로 변수에 대입할 필요가 없습니다.
결과를 보면 [1, 2, 3]과 [4, 5, 6]이 잘 합쳐진 것을 확인할 수 있습니다.
insert는 append처럼 새로운 요소를 리스트에 추가하지만,
추가하고 싶은 위치를 지정할 수 있다는 특징을 가지고 있습니다.
아래의 코드를 실행해 봅시다.
a = [1,2,4,5,6,7,8] a.insert(2, 3) print(a) a.insert(100, 100) print(a) a.insert(-999, 1000) print(a)
[1, 2, 3, 4, 5, 6, 7, 8] [1, 2, 3, 4, 5, 6, 7, 8, 100] [1000, 1, 2, 3, 4, 5, 6, 7, 8, 100]
insert는 append와 extend와는 다르게 두 개의 요소를 받아야 작동합니다.
앞의 요소는 몇 번째에 새로운 값을 입력할 지 이며,
다음 요소는 입력할 값입니다.
그래서 a.insert(2, 3)을 실행했을 경우,
a 리스트의 2번째, 즉 4가 있는 자리에 3이 들어가면서
나머지 값들이 뒤로 밀리게 된 모습을 볼 수 있는 겁니다.
그리고 insert는 리스트의 길이보다 매우 큰 값, 혹은 매우 작은 값을
첫 번째 요소로 입력하게 될 경우,
맨 앞에 값이 입력되거나(매우 작은 값),
혹은 맨 뒤에 값이 입력(매우 큰 값)되는 모습을 볼 수 있습니다.
여기까지가 리스트의 요소 추가에 대한 내용이었습니다.
다음 포스트에서는 리스트 안의 값을 제거하는 방법에 대해 알아보겠습니다.
댓글
댓글 쓰기