리스트란
리스트(List)는 여러 개의 데이터를 묶어 관리할 수 있는 자료형입니다.
리스트는 비슷한 유형의 데이터들을 관리할 때 중요하게 사용됩니다.
예를 들어, 과목 이름을 갖는 데이터들을 관리할 때
subject1 = "Math"
subject2 = "Science"
subject3 = "English"
다음과 같이 과목 이름 데이터를 하나하나 선언하는 것보다는
subjects = ["Math", "Science", "English"]
다음과 같이 리스트를 생성하여 관리하는 것이 좋습니다.
리스트 선언
리스트는 아래와 같은 방법으로 선언할 수 있습니다.
list = list()
list = []
또는 초기화와 동시에 값을 할당하기 위해서 다음과 같이 사용합니다.
list = [object1, object2, ..., objectn]
리스트 요소 접근
인덱싱이나 슬라이싱을 통해서 리스트의 요소에 접근할 수 있습니다.
인덱스 (Index) : 리스트에서 요소의 지정된 번호 (0부터 시작)
인덱싱
한 개의 요소에 접근할 때 다음과 같이 사용합니다.
list[index] # index에 대응하는 요소를 반환합니다.
subjects = ["Math", "Science", "English"]
subjects[1]
# subjects[1]은 subjects의 두번째 요소를 의미합니다.
# 따라서 "Science"를 출력합니다.
subjects[-1]
# subject[-1]은 subjects의 뒤에서 첫번째 요소를 의미합니다.
# 따라서 "English"를 출력합니다.
슬라이싱
두 개 이상의 요소에 접근할 때 다음과 같이 사용합니다.
list[start:end:step] # 조건에 맞는 요소들을 반환합니다.
# start : 슬라이싱을 시작할 위치
# end : 슬라이싱을 끝낼 위치 (end는 포함되지 않습니다.)
# step : 슬라이싱의 보폭
# 전체적으로 range()와 비슷합니다.
subjects = ["Math", "Science", "English"]
subjects[0:1]
# subjects[0:1]은 subjects의 1~2번째 요소를 의미합니다.
# ["Math", "Science"]를 리스트로 출력합니다.
subjects[-2:]
# subjects[-2:]은 subjects의 뒤에서 2~1번째 요소를 의미합니다.
# ["Science", "English"]를 리스트로 출력합니다.
index()
index()는 요소의 인덱스를 반환하는 메서드입니다.
(같은 요소가 존재하는 경우 가장 첫 요소의 인덱스를 반환합니다.)
list.index(object)
subjects = ["Math", "Science", "English"]
subjects.index("English")
# "English"의 인덱스인 2를 반환합니다.
append()
append()는 리스트에 요소를 추가하는 메서드입니다.
list.append(object)
subjects = ["Math", "Science", "English"]
subjects.append("History")
# subjects 리스트에 "History"를 추가합니다.
# subjects 리스트는 ["Math", "Science", "English", "History"]가 됩니다.
extend()
extend()는 리스트에 리스트를 추가하는 메서드입니다.
list.extend(list)
subjects = ["Math", "Science", "English"]
subjects.extend(["History", "Society"])
# subjects 리스트에 ["History", "Society"] 리스트를 추가합니다.
# subjects 리스트는 ["Math", "Science", "English", "History", "Society"]가 됩니다.
insert()
insert()는 리스트의 원하는 인덱스에 요소를 삽입하는 메서드입니다.
삽입된 인덱스 뒤의 요소들은 한 인덱스씩 밀려납니다.
list.insert(index, object)
subjects = ["Math", "Science", "English"]
subjects.insert(1, "History")
# subjects 리스트의 1번 인덱스에 "History"를 삽입합니다.
# subjects 리스트는 ["Math", "History", "Science", "English"]가 됩니다.
remove()
remove()는 리스트의 특정 요소를 제거하는 메서드입니다.
같은 요소가 존재하는 경우 가장 첫 요소를 제거합니다.
list.remove(object)
subjects = ["Math", "Science", "English"]
subjects.remove("Science")
# subjects 리스트에서 "Science" 요소를 제거합니다.
# subjects 리스트는 ["Math", "English"]가 됩니다.
pop()
pop()은 리스트의 마지막 요소를 반환하고 리스트에서 삭제하는 메서드입니다.
list.pop() # 가장 마지막 요소를 반환합니다.
list.pop(index) # index에 대응하는 요소를 반환합니다.
subjects = ["Math", "Science", "English"]
subjects.pop()
# subjects 리스트에서 마지막 요소인 "English"를 반환합니다.
# subjects 리스트는 ["Math", "Science"]가 됩니다.
clear()
clear()는 리스트의 모든 요소를 제거하는 메서드입니다.
list.clear()
subjects = ["Math", "Science", "English"]
subjects.clear()
# subjects 리스트는 []가 됩니다.
count()
count()는 리스트의 특정 요소의 개수를 반환하는 메서드입니다.
list.count(object)
number_list = [1, 1, 1, 2, 2, 3, 4]
number_list.count(1)
# number_list 리스트에서 1은 모두 3개가 존재하므로 3을 반환합니다.
copy()
copy()는 리스트의 복사본을 반환하는 메서드입니다.
list.copy()
subjects1 = ["Math", "Science", "English"]
subjects2 = subjects1.copy()
# subjects2 리스트는 ["Math", "Science", "English"]가 됩니다.
# subjects2 = subjects1[:]도 같은 기능을 합니다.
reverse()
reverse()는 리스트의 요소를 역순으로 정렬하는 메서드입니다.
list.reverse()
subjects = ["Math", "Science", "English"]
subjects.reverse()
# subjects 리스트는 ["English", "Science", "Math"]가 됩니다.
sort()
sort()는 리스트의 요소를 정렬하는 메서드입니다.
list.sort(*, key=None, reverse=False) # 키워드로만 전달할 수 있는 두 개의 인자를 받습니다.
list.sort() # 기본값은 가나다순(문자열로만 구성된 리스트)/숫자순(숫자로만 구성된 리스트)으로 정렬합니다.
subjects = ["English", "Math", "Science", "History", "Art"]
subjects.sort(key=len) # subjects 리스트를 이름의 길이 순으로 정렬합니다.
# subjects 리스트는 ["Art", "Math", "English", "Science", "History"]가 됩니다.