본문 바로가기
카테고리 없음

파이썬 리스트 집중 해부 2편: 리스트 기초 연산과 값 수정, 추가, 삭제

by 모두의 케빈 2023. 8. 18.

 

 

목차

 

리스트의 연산과 수정, 추가, 삭제하기

 > 리스트의 덧셈 연산: 리스트 합치

 > 리스트의 곱셈 연산: 정수배만큼 반복

 > 리스트 값 수정하기

 > 리스트 값 추가하기

     - 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]

 

 

댓글