본문 바로가기
Tutorial/Python

파이썬 문법 빠르게 훑어보기: 리스트(List)와 튜플(Tuple)

by CLJ 2024. 3. 11.

파이썬의 컬렉션 타입에는 리스트와 튜플, 딕셔너리와 세트가 있습니다. 여기서는 리스트와 튜플을 다루는 방법에 대해 알아보겠습니다. 

 

목차

1. 리스트 (List)

2. 튜플 (Tuple)

 

1. 리스트 (List)

 

여러 개의 값을 쉼표(,)로 구분하고 대괄호[]로 묶어서 하나의 변수에 저장합니다.

 

numbers = [1, 2, 3, 4, 5]

 

1.1 특징

 

리스트는 인덱싱(indexing)과 슬라이싱(slicing)을 할 수 있으며, 인덱스는 0부터 시작합니다. 또한, 하나의 리스트 안에 다양한 자료형을 요소로 가질 수 있습니다.

 

인덱싱 (indexing)

numbers = [1, 2, 3, 4, 5]
print(numbers[0])  # 1

 

위의 예제에서는 리스트 자료형 변수 numbers의 인덱스 0에 있는 값인 1을 출력합니다.

 

슬라이싱 (slicing)

 

numbers = [1, 2, 3, 4, 5]
print(numbers[2:5])  # [3, 4, 5]

 

위의 예제에서는 인덱스 2부터 4까지의 값을 슬라이싱하여 출력합니다. 슬라이싱의 인덱스 시작 번호인 2를 먼저 쓰고 콜론 뒤에는 가져올 마지막 값의 인덱스인 4에 1일 더한 5를 써 줍니다. 인덱스는 0에서 시작하기 때문에 3번째 값 3의 인덱스는 2입니다.

 

다양한 자료형 포함

listNumbers = [1, 2, 3, [4, 5]]

 

리스트는 서로 다른 자료형을 포함할 수 있으며, 리스트 안에 리스트를 요소로 가질 수도 있습니다. 위의 예시 코드에서는 리스트 안에 리스트[4,5]가 하나의 요소로 포함되어 있습니다.

 

중첩된 리스트

 

lst = [3, 5, ["apple", "mango"]]
print(lst[2])
print(lst[2][1])

 

리스트 안에 있는 리스트의 요소를 가져오려면 전체 인덱스를 먼저 쓰고, 다음에 안에 있는 리스트의 인덱스를 씁니다. 위의 예제에서 list[2]는 인덱스 2에 있는 ["apple", "mango"]를 반환합니다. list[2][1]을 출력하면 인덱스 2에 있는 리스트 데이터에서 인덱스 1에 있는 "mango"를 리턴합니다.

 

1.2 연산

 

리스트는 문자열과 같은 연산을 할 수 있습니다.

 

리스트 더하기

 

아래의 출력문에서 두 개의 리스트를 더하여 lst1과 lst2를 모두 가지고 있는 [1,2,3,4,5]를 리턴합니다.

 

lst1 = [1, 2, 3]
lst2 = [4, 5]
print(lst1 + lst2)  # [1, 2, 3, 4, 5]

 

리스트 반복

 

곱셈 연산자를 사용하여 리스트를 반복할 수 있습니다.

 

print(lst1 * 2)  # [1, 2, 3, 1, 2, 3]

 

1.3 값 수정

 

인덱스를 사용하여 새로운 값을 할당하여 값을 변경할 수 있습니다. 아래의 코드에서 numbers의 인덱스 1의 값은 2인데 5를 할당하여 기존의 값 2를 새로운 값 5로 변경하였습니다.

 

numbers = [1, 2, 3]
numbers[1] = 5
print(numbers)  # [1, 5, 3]

 

1.4 요소 삭제

 

다음과 같이 del을 인덱싱이나 슬라이싱과 함께 사용하여 하나 또는 여러개를 삭제할 수 있습니다. 아래의 첫 줄은 인덱스 0번째 요소를 삭제합니다. 두 번째 라인의 코드 del lst1[1:3]은 인덱스 1번째부터 2번째까지 제거합니다.

 

del lst1[0]
del lst1[1:3]

 

1.5 주요 함수들

 

len() 

len함수를 사용하여 리스트의 길이를 구할 수 있습니다. len()함수는 가변적 길이의 데이터를 다룰 때에 유용합니다. 아래의 예시코드에서 사용한 lst1의 길이를 구하기 위해 len(lst1)을 출력하면 3을 반환합니다.

 

lst1 = [1, 2, 3]
len(lst1)  # 리스트의 길이를 반환

 

append() 

 

리스트에 요소 추가하는 함수로 많이 사용됩니다. 마지막 요소 다음에 추가된다는 점을 유의해야 합니다. 다음의 예는 append를 사용하여 기존의 리스트에 값 5를 마지막에 추가했습니다. 출력하면 [1, 3, 7, 5]를 반환합니다.

 

lst = [1, 3, 7]
lst.append(5)
print(lst)  # [1, 3, 7, 5]

 

insert()

 

 

insert는 중간에 요소 삽입하는 경우에 사용합니다. 변수.insert(인덱스, 삽입할 값)의 형식을 갖습니다. 아래의 예에서 인덱스 1번째에 5를 삽입하려면 lst.insert(1,5)와 같이 씁니다.

lst = [1, 2, 3]
lst.insert(1, 5)
print(lst)  # [1, 5, 2, 3]

 

sort() 정렬

 

리스트의 요소를 순서대로 나열합니다. 리스트에서 많이 쓰이지만 원래의 데이터가 변경된다는 점을 주의해야 합니다.

 

lst = [1, 3, 7, 4, 5]
lst.sort()
print(lst)  # [1, 3, 4, 5, 7]

lst.sort(reverse=True)
print(lst)  # [7, 5, 4, 3, 1]

 

위에서 sort()함수를 사용하면 디폴트는 오름차순이기 때문에 [1, 3, 4, 5, 7]로 출력됩니다. 내림차순 정렬하고 싶다면 sort()괄호안에 reverse=True를 입력합니다. 파이썬은 True, False의 첫 글자를 반드시 대문자를 사용합니다. 결과는 [7, 5, 4, 3, 1]과 같이 내림차순으로 정렬됩니다.

 

reverse() 

reverse함수는 리스트 요소를 역순으로 나열합니다. 

 

lst1 = [1, 3, 7, 4, 5]
lst1.reverse()
print(lst1)  # [5, 4, 7, 3, 1]

 

index() 

 

변수.index(요솟값)의 형식으로 값을 입력하면 그 값이 있는 인덱스 번호를 반환합니다.

lst1 = [1, 3, 7, 4, 5]
print(lst1.index(7))  # 2

 

위에서 리스트의 요솟값인 7의 인덱스는 2이기 때문에 2를 출력합니다.

 

remove() 

 

remove()함수는 값을 사용하여 요소를 삭제합니다.

lst = [1, 2, 2, 3, 2]
lst.remove(2)
print(lst)  # [1, 2, 3, 2]

 

위에서 remove() 함수를 사용하여 2의 값을 가진 요소를 제거합니다. 삭제할 요소가 여러 개인 경우는 첫 번째 요소만을 삭제합니다. 예시의 리스트 출력 결과를 보면 첫 번째 2만 삭제되었습니다.

 

pop() 

 

pop()은 리스트의 마지막 요소를 반환한 후에 삭제합니다. pop()에 삭제할 인덱스를 입력하면 해당 인덱스의 값을 반환한 후에 삭제합니다. 아래의 예시 코드에서 lst1.pop(2)는 리스트 요소 중에서 인덱스 2번째에 있는 7을 반환하고 리스트에서 7을 삭제합니다.

lst = [1, 3, 7, 4, 5]
print(lst.pop(2))  # 7
print(lst)  # [1, 3, 4, 5]

 

count() 

 

변수.count(value)는 리스트 내에서 value가 몇 개 있는지 개수를 반환합니다.

lst = [1, 1, 3, 1, 7, 4, 5]
print(lst.count(1))  # 3

 

위에서 리스트 안에 값 1이 몇 개인지 알기 위해 count() 함수를 사용했습니다. 데이터 값 1이 리스트 안에 3개 있기 때문에 출력 결과는 3이 됩니다.

 

extend() 

리스트를 확장하는 데에 자주 사용합니다. 변수.extend(iterable)의 형식을 가지고 있으며, 이터러블(iterable) 값만 유효합니다. 이터러블(iterable)은 문자열, 리스트, 튜플과 같이 반복 가능한 데이터를 의미합니다.

 

lst = [1, 2, 3, 4, 5]
lst.extend([6, 7, 8])
print(lst)  # [1, 2, 3, 4, 5, 6, 7, 8]

 

2. 튜플 (Tuple)

 

튜플(Tuple)의 인덱싱은 리스트와 같습니다.

tp = (1, 2, 3)
print(tp[1])  # 2

 

튜플과 리스트 차이

 

  1. 튜플은 소괄호(), 리스트는 대괄호[]를 사용합니다. 튜플은 소괄호를 생략할 수도 있습니다.
  2. 튜플은 한 번 값을 지정하고 나면 지우거나 요소의 값을 변경할 수 없습니다. 리스트는 요소 값을 삭제, 생성, 수정할 수 있습니다.

2024.03.13 - [Python] - 파이썬 문법 빠르게 훑어보기: 딕셔너리(Dictionary)와 세트(Set)

 

파이썬 문법 빠르게 훑어보기: 딕셔너리(Dictionary)와 세트(Set)

파이썬에 있는 컬렉션 자료타입으로는 리스트와 튜플, 딕셔너리와 세트가 있는데요. 여기서는 딕셔너리와 세트를 확인해 보겠습니다.   2024.03.11 - [정보기술] - 파이썬 문법 빠르게 훑어보기(2):

it-learner.tistory.com

 

© 2024 파이썬 리스트와 튜플 가이드