목차
> 리스트의 덧셈 연산: 리스트 합치
> 리스트의 곱셈 연산: 정수배만큼 반복
> 리스트 값 수정하기
> 리스트 값 추가하기
- append() 메서드
- extend() 메서드
- insert() 메서드
> 리스트 값 제거하기
- remove() 메서드
- del 명령어
- pop() 메서드
> sort() 메서드를 활용하여 리스트 정렬하기
> 리스트 내림차순 정렬: 'reverse = True'
> 리스트 뒤집기: 음수 인덱스 활용
리스트의 연산과 수정, 추가, 삭제하기
리스트의 덧셈과 곱셈 연산부터, 리스트 내 값을 수정, 추가, 삭제하는 방법에 대해 알아보도록 하겠습니다.
리스트의 덧셈 연산: 리스트 합치기
리스트의 덧셈은 더해진 순서대로 리스트를 연결해 줍니다.
list_a = [1,2,3]
list_b = [4,5,6]
list_c = [7,8,9]
list_a + list_b + list_c
>>>>> 실행 결과:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
리스트의 곱셈 연산: 정수배만큼 반복
리스트의 곱셈은 곱해진 정수배만큼 리스트를 반복합니다.
list_a = [1,2,3]
list_a * 3
>>>>> 실행 결과: [1,2,3,1,2,3,1,2,3]
리스트 값 수정하기
리스트 내 원소의 값을 수정하기 위해서는 인덱싱과 슬라이싱을 통해 직접 접근하여 값을 바꿔줍니다.
# 1을 9999로 변경
list_a = [1,2,3,4,5,6]
list_a[0] = 9999
list_a
>>>>> 실행 결과: [9999, 2, 3, 4, 5 ,6]
여러 값을 바꾸고 싶다면, 슬라이싱을 통해 바꿀 수 있습니다. 이때, 슬라이싱 한 원소의 개수와 동일하게 바꾸고자 하는 숫자를 명시해야 합니다.
# 2,3을 9999로 변경
list_a = [1,2,3,4,5,6]
list_a[1:3] = 9999,9999
list_a
리스트 값 추가: 덧셈 연산 활용
먼저, 앞에서 배운 덧셈 연산을 활용하는 방법입니다. 이 방법은 리스트 간의 연산만 지원하므로, 추가하고자 하는 값은 리스트 형태여야 합니다.
# 리스트의 맨 뒤에 7을 추가
list_a = [1,2,3,4,5,6]
list_a += [7]
list_a
>>>>> 실행 결과: [1, 2, 3, 4, 5, 6, 7]
리스트 값 추가: append() 메서드
이와 비슷한 방식으로 append 메서드가 있습니다. 리스트에 원소를 추가할 때 가장 많이 활용되는 방법입니다.
# 리스트의 맨 뒤에 7을 추가
list_a = [1,2,3,4,5,6]
list_a.append(7)
list_a
>>>>> 실행 결과: [1, 2, 3, 4, 5, 6, 7]
append() 메서드는 하나의 값을 리스트의 맨 뒤에 추가합니다. 이때, 값으로는 리스트 등과 같은 자료형도 추가할 수 있습니다.
list_a = [1,2,3,4,5,6]
list_a.append([8,9,10])
list_a
>>>>> 실행 결과: [1, 2, 3, 4, 5, 6, [8, 9, 10]]
append() 메서드의 장점은 리스트 안에 리스트와 같은 컬렉션 자료형을 개별 원소로 추가할 수 있다는 점입니다.
리스트 값 추가: extend() 메서드
반면, 컬렉션 자료형의 값을 풀어서 여러 개의 개별 원소로 저장하고 싶은 경우에는 extend() 메서드를 사용합니다.
list_a = [1,2,3,4,5,6]
list_a.extend([8,9,10])
list_a
>>>>> 실행 결과: [1, 2, 3, 4, 5, 6, 8, 9, 10]
리스트 값 추가: insert() 메서드
많이 사용하지는 않지만, insert() 메서드로 값을 추가할 수 있습니다. insert() 메서드는 원하는 인덱스(위치)에 값을 추가합니다.
# insert(값을 추가하고 싶은 인덱스, 추가하고 싶은 값)
list_a = [1,2,3,4,5,6]
list_a.insert(1,8888)
list_a
>>>>> 실행 결과: [1, 8888, 2, 3, 4, 5, 6]
리스트 값 삭제: remove() 메서드
리스트의 값을 삭제하기 위한 방법 중 하나는 remove 메서드입니다. remove 메서드는 아래 코드처럼 소괄호 안에 지우고 싶은 '값'을 입력하여 제거합니다.
# 1을 제거
# 인덱스가 아닌 값을 입력하기
list_a = [1,2,3,4,5,6]
list_a.remove(1)
list_a
>>>>> 실행 결과: [2, 3, 4, 5, 6]
리스트 값 삭제: del 명령
여러 개의 값을 동시에 지우거나 변수 자체를 제거하고 싶다면 del 명령어를 활용하시면 됩니다. del은 인덱싱이나 슬라이싱으로 불러온 모든 원소들을 제거합니다.
list_a = [1,2,3,4,5,6]
del list_a[0] # 한 개 값 지우기
del list_a[0:3] #여러 값 지우기
list_a
>>>>> 실행 결과: [5, 6]
리스트 자체를 제거하고 싶다면 del 명령어 뒤에 리스트 이름을 입력하면 됩니다.
ist_a = [1,2,3,4,5,6]
del list_a # 리스트 자체를 제거
리스트 값 삭제: pop() 메서드
pop() 메서드는 조금 독특한 제거 방법입니다. 리스트에서 하나의 원소를 꺼내오는 개념입니다. 꺼낸 값을 다른 변수에 넣거나 활용할 수 있습니다. 값을 꺼낼 때는 맨 뒤에서부터 하나씩 꺼냅니다.
list_a = [1,2,3,4,5,6]
new_variable = list_a.pop()
print(list_a, new_variable)
print(new_variable)
>>>>> 실행 결과: [1, 2, 3, 4, 5] 6
맨 뒤가 아니라 특정 인덱스를 활용하여 값을 꺼낼 수 있습니다.
# index를 활용하여 값 꺼내기
list_a = [1,2,3,4,5,6]
new_variable = list_a.pop(0)
print(list_a, new_variable)
>>>>> 실행 결과: [1, 2, 3, 4, 5] 6
리스트 정렬
sort() 메서드를 활용하여 리스트 정렬하기
숫자에는 대소 관계가 있습니다. 물론, 문자열에도 대소 관계가 있습니다. 대소 관계가 있는 원소들이 리스트에 모여 있다면, 그 리스트를 ‘정렬’할 수 있습니다.
정렬은 sort() 메서드를 이용합니다. 단, sort() 메서드를 이용할 때는 리스트 내 숫자만 있거나, 문자만 있어야 합니다. 숫자와 문자가 같이 있으면 대소 관계를 비교할 수 없으니까요.
숫자로만 이루어진 리스트의 정렬
# 리스트 정렬
list_a = [81,9,4,6,2,78,1,5]
list_a.sort()
list_a
>>>>> 실행 결과: [1, 2, 4, 5, 6, 9, 78, 81]
문자로만 이루어진 리스트의 정렬
# 리스트 내 문자열 정렬
list_a = ['c','나','가','a','다','b','가고일','apple']
list_a.sort()
list_a
>>>>> 실행 결과: ['a', 'apple', 'b', 'c', '가', '가고일', '나', '다']
리스트 내림차순 정렬: 'reverse = True'
참고로 리스트를 내림차순으로 정렬하기 위해서는 sort() 메서드에 'reverse = True'라는 인자를 전달하면 됩니다.
숫자로만 이루어진 리스트 내림차순 정렬
# 내림차순 정렬
list_a = [81,9,4,6,2,78,1,5]
list_a.sort(reverse=True)
print(list_a)
>>>>> 실행 결과: [81, 78, 9, 6, 5, 4, 2, 1]
문자로만 이루어진 리스트 내림차순 정렬
# 내림차순 정렬
list_a = ['c','나','가','a','다','b','가고일','apple']
list_a.sort(reverse=True)
list_a
>>>>> 실행 결과: ['다', '나', '가고일', '가', 'c', 'b', 'apple', 'a']
리스트 뒤집기: 음수 인덱스 활용
오름차순, 내림차순으로 정렬하는 것 이외에 리스트를 그대로 '역순'으로 뒤집는 가장 간단한 방법은 음수 인덱스를 활용하는 것입니다.
# 리스트 뒤집기 (역순)
list_a = [81,9,4,6,2,78,1,5]
list_a = list_a[::-1]
print(list_a)
>>>>> 실행 결과: [5, 1, 78, 2, 6, 4, 9, 81]
댓글