[파이썬 입문] 3. 제어문과 컬렉션 – 5)리스트 기능1 (추가, 병합, 삭제)

보관

리스트에 요소를 순차 보관할 때 append 메서드를 사용합니다.

list.append(요소)

다음은 빈 리스트를 생성한 후 1부터 9까지 순차적으로 보관하는 코드입니다.

[In]
ls = list() #빈 리스트 생성
for i in range(1,10):
  ls.append(i)
print(ls)
[Out]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

‘a’를 추가해서 확인하면 맨 마지막에 보관하는 것을 알 수 있어요.

[In]
ls.append('a')
print(ls)
[Out]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'a']

리스트에 원하는 위치에 보관할 때는 insert 메서드를 사용합니다.

list.insert(인덱스, 요소)

다음은 인덱스 2에 ‘z’를 추가하는 코드입니다.

[In]
ls.insert(2,'z')
print(ls)
[Out]
[1, 2, 'z', 3, 4, 5, 6, 7, 8, 9, 'a']

출력 결과를 보면 원래 인덱스 2부터 그 뒤에 보관한 요소들은 모두 한 칸씩 뒤로 밀려난 것을 알 수 있어요.

리스트 병합

리스트와 리스트를 병합할 때는 extend 메서드를 사용합니다.

list.extend(iterable)

리스트의 extend 메서드는 열거 가능한 컬렉션에 있는 요소들을 순차적으로 보관하는 메서드입니다.

만약, 입력 인자로 다른 리스트가 오면 해당 리스트의 요소들을 자신의 뒤에 보관할 수 있어요.

다음은 ls1에 ls2를 병합하기 위해 extend 메서드를 사용한 코드입니다.

[In]
ls1 = [1,2,3,4]
ls2 = ['a','b','c']

print(ls1)
print(ls2)
ls1.extend(ls2)
print(ls1)
print(ls2)
[Out]
[1, 2, 3, 4]
['a', 'b', 'c']
[1, 2, 3, 4, 'a', 'b', 'c']
['a', 'b', 'c']

출력 결과를 보면 알 수 있듯이 ls1에 ls2의 요소들이 순차 보관한 것을 알 수 있어요.

ls2는 아무런 변화가 없습니다.

삭제

리스트에는 요소를 삭제할 때 pop, remove, clear 메서드를 제공합니다.

pop 메서드는 맨 뒤 혹은 원하는 위치의 요소를 꺼내는 메서드입니다.

remove 메서드는 특정 요소를 삭제하는 메서드입니다.

clear 메서드는 모든 요소를 제거하는 메서드입니다.

먼저 pop 메서드를 알아볼게요.

list.pop([인덱스])

pop메서드에 입력 인자를 전달하지 않으면 맨 마지막 요소를 꺼냅니다. 여기서 꺼낸다는 것은 반환한다는 의미입니다.

[In]
ls = [10,11,12,13,14,15]
print(ls)
re = ls.pop()
print("re:",re)
print(ls)
[Out]
[10, 11, 12, 13, 14, 15]
re: 15
[10, 11, 12, 13, 14]

pop메서드에 입력 인자로 인덱스를 전달하면 해당 위치의 요소를 꺼냅니다.

[In]
re = ls.pop(2)
print("re:",re)
print(ls)
[Out]
re: 12
[10, 11, 13, 14]

list의 remove 메서드는 특정 요소를 제거할 때 사용합니다.

그리고 remve 메서드는 아무런 값도 반환하지 않습니다.

list.remove(요소)

[In]
re = ls.remove(11)
print("re:",re)
print(ls)
[Out]
re: None
[10, 13, 14]

리스트의 모든 요소를 제거할 때는 clear 메서드를 사용하세요.

[In]
ls.clear()
print(ls)
[Out]
[]