이번 포스팅에선 Python의 자료형 중 하나인 리스트(List)에 대해 알아보도록 하겠습니다.
1. 수 - 정수형(Integer), 실수형(Float), 복소수(Complex number)
2. 문자열(String)
3. Boolean 타입 (True, False)
4. 리스트(List)
5. 튜플(Tuple)
6. 딕셔너리(Dictionary)
7. 집합(Set)
1. 리스트(List)
- 여러 타입의 데이터들이 연속적으로 정렬되어 저장될 수 있는 자료형으로 하나의 변수에 여러 가지 데이터를 저장할 때 사용합니다.
2. 리스트의 특징
2-1.
- [] (대괄호)를 사용하여 데이터를 저장한다.
# 기본적인 List의 형태
list = [1, 2, "Python", "Java", "Javascript"]
# 리스트의 특정 원소에 접근
list = [1, 2, "Python", "Java", "Javascript"]
print(list[2]) # Python
2-2.
리스트에 또 다른 리스트를 추가할 수 있다.
# 중복 리스트를 선언하고 중복 리스트 원소 "Python2"에 접근
list = [1, 2, "Python", ["Python1", "Python2"], "Java", "Javascript"]
print(list[3][1]) # Python2
3. 리스트 인덱싱(Indexing)
- 문자열에서 인덱싱을 사용한 것처럼, 리스트에서도 인덱싱(Indexing)이 가능하다.
# 리스트의 Indexing
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list[0]) #1
print(list[-2]) #9
list_sum = list[0] + list[-2]
print(list_sum) #10
4. 리스트 슬라이싱(Slicing)
- 리스트에서도 슬라이싱(Slicing)을 사용할 수 있다.
- 슬라이싱한 결과값에 대해 새로운 리스트에 저장한다.
# 리스트의 Slicing
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list[0:2:]) # [1, 2]
print(list[2:]) # [3, 4, 5, 6, 7, 8, 9, 10]
print(list[0:10:2]) # [1, 3, 5, 7, 9]
5. 리스트 더하기, 반복하기
5-1.
- 문자열처럼 리스트끼리 서로 더할 수 있다.
- 더해진 리스트들을 하나의 리스트에 저장한다.
# 리스트 더하기
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = [11, 12]
print(list1 + list2) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
5-2.
- 문자열처럼 리스트도 여러 번 반복하여 나타낼 수 있다.
- 마찬가지로 결과값을 하나의 리스트에 저장한다.
# 리스트 반복하기
list2 = [11, 12]
print(list2 * 5) # [11, 12, 11, 12, 11, 12, 11, 12, 11, 12]
6. 리스트에서 특정 원소의 값 수정하기
6-1.
- 리스트에서 특정 인덱스에 해당하는 원소의 값을 변경할 수 있다.
# 리스트에서 특정 인덱스에 해당하는 원소 변경하기
list = [1, 2, "Python", "Java", "Javascript"]
list[2] = "Python is fun!"
print(list) # [1, 2, 'Python is fun!', 'Java', 'Javascript']
6-2.
- 슬라이싱을 이용하여 특정 구간에 해당하는 모든 원소들을 변경할 수 있다.
- 슬라이싱을 통해 다수의 값을 변경하는 경우 [] (대괄호) 안에 변경할 값을 모두 담아 한 번에 변경한다.
# 슬라이싱을 이용하여 특정 구간에 해당하는 모든 원소들을 변경할 수 있다.
list = [1, 2, "Python", "Java", "Javascript"]
list[0:2:] = ["Python1", "Python1"]
print(list) # ['Python1', 'Python1', 'Python', 'Java', 'Javascript']
6-3.
- 슬라이싱으로 [] (빈 대괄호 : 원소 없음)을 이용하여 리스트의 요소를 삭제할 수 있다.
# 리스트의 원소 삭제하기 - 슬라이싱으로 [] 빈 대괄호 이용
list = [1, 2, "Python", "Java", "Javascript"]
list[1:2] = []
print(list) # [1, 'Python', 'Java', 'Javascript']
6-4.
- del() 함수를 이용해서 리스트의 요소를 삭제할 수 있다.
# 리스트의 원소 삭제하기 - del() 함수 이용
list = [1, 2, "Python", "Java", "Javascript"]
del(list[0])
print(list) # [2, 'Python', 'Java', 'Javascript']
# 슬라이싱 이용
del(list[0:1:])
print(list) # ['Python', 'Java', 'Javascript']
7. 리스트 자료형에서 사용되는 여러 가지 함수
- 리스트 자료형에서는 리스트에 저장된 데이터들을 관리하기 위해 아래와 같은 여러 가지 함수를 제공합니다.
7-1.
- append() : 리스트의 마지막 인덱스의 바로 다음 인덱스에 특정 원소를 추가한다.
- 문법 : 리스트명.append("추가할 원소")
# append()
list_number = [1, 2, 3, 4, 5]
# append() 함수는 마지막에 한 개의 원소만 추가할 수 있다. (두 개 이상 추가 시 오류 발생)
# list_number.append(6, 7) # TypeError: list.append() takes exactly one argument (2 given)
list_number.append("python")
print(list_number) # [1, 2, 3, 4, 5, 'python']
7-2.
- insert() : 리스트의 특정 인덱스에 데이터를 삽입한다.
- 문법 : 리스트명.insert(인덱스 넘버, "추가할 원소")
# insert()
list_kakao_members = ["Lion", "Apeach", "Muzi"]
list_kakao_members.insert(1, "Neo")
print(list_kakao_members) # ['Lion', 'Neo', 'Apeach', 'Muzi']
# 정수 추가
list_kakao_members.insert(1, 10)
print(list_kakao_members) # ['Lion', 10, 'Neo', 'Apeach', 'Muzi']
7-3.
- sort() : 데이터를 규칙에 맞게 정렬할 수 있는 함수
- 문법 : 리스트명.sort()
- 문자(한글)의 경우 자음 순서인 ㄱ, ㄴ, ㄷ ... 순으로 데이터 정렬
- 수의 경우 수의 크기 순으로 데이터 정렬
# sort()
# 정수가 담긴 리스트의 정렬
list_number = [1, 2, -10, 30, 49]
list_number.sort()
print(list_number) # [-10, 1, 2, 30, 49]
# 문자가 담긴 리스트 정렬
list_alphabet = ['p', 'y', 't', 'h', 'o', 'n']
list_alphabet.sort()
print(list_alphabet) # ['h', 'n', 'o', 'p', 't', 'y']
# 문자열이 담긴 리스트의 정렬
list_dictionary = ["apple", "cat", "buyer"]
list_dictionary.sort()
print(list_dictionary) # ['apple', 'buyer', 'cat']
7-4.
- reverse() : 리스트 내부의 원소들을 기존 정렬된 방향의 역순으로 정렬하는 함수
- 문법 : 리스트명.revese()
# reverse()
list_kakao_members = ["Lion", "Apeach", "Muzi"]
list_kakao_members.reverse()
print(list_kakao_members) # ['Muzi', 'Apeach', 'Lion']
7-5.
- index() : 리스트 내에서 특정 원소가 몇 번째 인덱스에 위치하는지 인덱스 번호를 반환하는 함수
- 문법 : 리스트명.index("탐색할 원소")
# index()
list_kakao_members = ["Lion", "Apeach", "Muzi"]
print(list_kakao_members.index("Lion")) # 0
7-6.
- remove() : 리스트 내에서 특정 원소를 삭제하는 함수
- 문법 : 리스트명.remove("삭제할 원소")
- 삭제할 대상이 중복으로 다수 존재하는 경우, 제일 먼저 탐색된 인덱스의 원소를 찾아 삭제합니다.
# remove()
list_kakao_members = ["Lion", "Apeach", "Apeach", "Muzi"]
# 리스트의 원소 중 하나인 "Apeach"를 해당 리스트에서 삭제
# Apeach가 모두 삭제되지 않고 먼저 탐색된 1번 인덱스의 원소 삭제
list_kakao_members.remove("Apeach")
print(list_kakao_members) # ['Lion', 'Apeach', 'Muzi']
7-7.
- pop() : 리스트에서 가장 마지막에 있는 원소를 꺼내어 해당 원소를 반환하는 함수
- 문법 : 리스트명.pop()
# pop()
list_number = [1, 2, -10, 30, 49]
# pop() 함수로 마지막 인덱스의 원소 반환
print(list_number.pop()) #49
print(list_number) # [1, 2, -10, 30]
7-8.
- count() : 리스트에서 특정 원소가 몇 개인지 개수를 반환하는 함수
- 문법 : 리스트명.count("탐색할 원소")
# count()
list_kakao_members = ["Lion", "Apeach", "Apeach", "Muzi"]
print(list_kakao_members.count("Apeach")) # 2
print(list_kakao_members.count("Muzi")) # 1
7-9.
- extend() : 기존 리스트에 또 다른 리스트를 추가하여 하나의 리스트를 생성하는 함수
- 문법 : 리스트명.extend(["추가할 원소1, "추가할 원소2"... ])
- 매개변수로 추가할 원소들의 모임은 [] (대괄호)로 묶어서 리스트의 형태로 전달한다.
# extend()
list_kakao_members = ["Lion", "Apeach", "Muzi"]
list_kakao_members.extend(["Neo", "Con"])
print(list_kakao_members) # ['Lion', 'Apeach', 'Muzi', 'Neo', 'Con']
이번 포스팅에선 Python의 자료형 중 하나인 리스트(List)와 특징, 리스트에서 자주 사용되는 함수에 대해 알아보았습니다.
다음엔 튜플(Tuple) 자료형에 대해 학습해 보도록 하겠습니다.
======================================================================
해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.
이에 대해 지적해 주시면 감사하겠습니다.
'백엔드(Back-End) > Python' 카테고리의 다른 글
[Python] - 자료형 - 딕셔너리(Dictionary) (0) | 2022.08.15 |
---|---|
[Python] - 자료형 - 튜플(Tuple) (0) | 2022.08.15 |
[Python] - 자료형 - 문자열(String) (0) | 2022.08.12 |
[Python] - 자료형 - 수(Numbers) (0) | 2022.08.12 |
[Python] - Python이란? (0) | 2022.08.12 |
댓글