4. 고급 자료형 I > 4-4. 리스트와 관련된 함수
리스트와 관련된 함수
이번엔 리스트와 관련된 함수를 배워볼 거에요. 사실 함수라고 해서 긴장하시는 분들이 많을 텐데, 자세한 함수 내용에 대해서는 뒤에서 배울 예정이니 긴장하지 마셔요! 이 파트에서는 이미 파이썬 자체에 내장된 함수들 중 리스트와 관련된 함수들을 사용하는 법만 배워볼 예정입니다.
리스트의 끝에 '값 하나'를 추가하는 함수에요. 여러 값을 추가할 수는 없답니다. 코드는 아래를 살펴볼까요?
a=[1,2,3,4,5]
a.append(6) #리스트 a는 [1,2,3,4,5,6]이 되었습니다.
a.append("cosadama") #리스트 a는 [1,2,3,4,5,6,"cosadama"]가 되었습니다.
a.append([7,8]) #리스트 a는 [1,2,3,4,5,6,"cosadama", [7,8]]이 되었습니다.
a.append(7,8) #error: append() 함수는 값 하나만 리스트의 끝에 추가 가능합니다.
sort()
함수는 리스트 내의 작은 값부터 큰 값까지를 줄세우는(오름차순!) 함수입니다. 다만 조건이 있는데, 리스트 내의 값들이 모두 같은 자료형이어야 해요. 값을 비교해 적은 값부터 큰 값까지 줄세우는 것이니 당연하겠죠?
a=[5,2,3,1,4] #숫자 크기와 상관없이 뒤섞인 리스트 a지만
a.sort() #sort() 함수를 사용하면
print(a) #[1,2,3,4,5]와 같은 리스트 a가 출력됩니다.
b=['찬', '혜민', '용주', '정윤'] #숫자형이 아니어도 가능합니다.
b.sort()
print(b) #['용주', '정윤', '찬', '혜민']과 같은 리스트 b가 출력됩니다.
앞선 sort()
함수가 오름차순 함수였다면, reverse()
함수는 큰 값부터 작은 값까지를 줄세우는 내림차순 함수에요. 재미있는 것은, 내림차순 정렬은 sort()
함수로도 표현할 수 있다는 점입니다. 아래 코드를 볼까요?
a=[1,2,3,4,5]
a.reverse() #a는 [5,4,3,2,1]로 정렬됩니다.
a.sort(reverse=True) #이와 같이 함수의 인수 자리(괄호 안)에 reverse=True를 입력해주면 내림차순 정렬이 가능해집니다. 당연히 결과는 [5,4,3,2,1]이 됩니다.
범용적인 함수로, 리스트를 제외한 자료형에서도 많이 사용되는 함수입니다. 총 개수를 세주는 함수라 생각하면 쉽죠. 값이 너무 많아 총개수를 모르는 경우 파악하기에 용이합니다.
a=[1,2,3,4,5]
len(a) #함수로부터 반환되는 값은 숫자 5입니다. a 리스트는 다섯개의 값을 가지니까요.
특정 값이 리스트에서 어디에 위치하는지를 알려주는 함수입니다. 다만 찾으려고 하는 값이 여러개 있을 경우 가장 앞에 있는 위치를 알려줍니다. 그 다음번 값을 찾고 싶다면 범위를 지정해줄 수 있습니다.
a=[1,2,3,4,5,3,6,7]
a.index(3) #반환되는 값은 2입니다. a 리스트에서 3은 2번째에 위치해있으니까요.(역시 0부터 셉니다!)
a.index(3,3,7) #3값의 위치를 찾되, 3번째 값부터 7번째 값 이전까지를 범위로 찾습니다. 2번째 다음의 3값은 5번째에 위치해있으므로 숫자 5가 반환됩니다.
a.index(3,3) #마지막 값까지 포함해 3의 위치를 찾고 싶다면 다음과 같이 적어도 좋습니다. 3값의 위치를 찾되, 3번째 값부터 마지막 값까지의 범위에서 찾는다는 의미입니다.
앞서 배운 append()
함수는 리스트의 '마지막'에 값을 추가하는 함수였다면, insert()
중간에 값을 삽입할 수 있는 함수에요.
a=[1,2,3,5]
a.insert(3,4) #3번째 위치에 값 4가 추가되고, 기존 값들은 뒤로 밀려납니다.
print(a) #리스트 [1,2,3,4,5]가 출력됩니다.
특정 값을 제거할 수 있는 함수입니다. 다만 리스트 내의 모든 해당 값을 삭제하는 것이 아니라 처음 나오는 해당 값만을 삭제합니다.
a=[1,2,3,4,5,2]
a.remove(2)
print(a) #리스트 [1,3,4,5,2]가 출력됩니다. 가장 앞에 위치한 2값만 삭제되고, 그 뒤에 위치한 2값은 여전히 남아있음을 알 수 있습니다.
앞서 배운 len()
함수가 리스트 내의 모든 값의 개수를 셌다면, count()
함수는 특정 값의 개수만을 세는 함수입니다.
a=[1,2,3,4,5,2]
a.count(2) #숫자 2가 반환됩니다. 리스트 a에 2 값은 두개있으니까요.