Hey Tech
[파이썬] 리스트 관련 함수: append, sort, reverse, insert, count, remove 본문
SW 개발/Python
[파이썬] 리스트 관련 함수: append, sort, reverse, insert, count, remove
Tony Park (토니) 2021. 4. 16. 10:16728x90
반응형
안녕하세요, 오늘은 리스트(list) 데이터 타입에 유용한 함수로서 append(), sort(), reverse(), insert(), count(), remove()에 대해 소개해 드립니다.
내용이 간단하니 아래 표와 예시를 참고해 주세요!
표
사용목적 및 설명 | 메서드 | 시간 복잡도 |
데이터 추가(맨 뒤에서부터 추가) | 리스트 이름.append(추가할 데이터) | \(O(1)\) |
데이터 정렬(오름차순 정렬) | 리스트 이름.sort() | \(O(NlogN)\) |
데이터 정렬(내림차순 정렬) | 리스트 이름.sort(reverse = True) | \(O(NlogN)\) |
리스트 내 원소 순서 뒤집기 | 리스트 이름.reverse() | \(O(N)\) |
특정 인덱스에 원소 삽입 | 리스트 이름.insert(삽입할 위치의 인덱스, 삽입할 값) | \(O(N)\) |
특정 원소(값)의 개수 세기 | 리스트 이름.count(특정 원소) | \(O(N)\) |
특정 원소(값)를 1개만 제거 | 리스트 이름.remove(제거할 원소(값)) | \(O(N)\) |
예시
arr = [5, 1, 4, 2]
# 데이터 추가
arr.append(3)
print(arr) # [5, 1, 4, 2, 3]
# 오름차순 정렬
arr.sort()
print("오름차순 정렬: ", arr) # 오름차순 정렬: [1, 2, 3, 4, 5]
# 내림차순 정렬
arr.sort(reverse = True)
print("내림차순 정렬: ", arr) # 내림차순 정렬: [5, 4, 3, 2, 1]
# 원소 순서 뒤집기
arr.reverse()
print("원소 순서 뒤집기: ", arr) # 원소 순서 뒤집기: [1, 2, 3, 4, 5]
# 특정 인덱스에 데이터 삽입
arr.insert(2, 5)
print("데이터 삽입 확인: ", arr) # 데이터 삽입 확인: [1, 2, 5, 3, 4, 5]
arr.insert(5, 5)
print("데이터 삽입 확인: ", arr) # 데이터 삽입 확인: [1, 2, 5, 3, 4, 5, 5]
arr.insert(1, 5)
print("데이터 삽입 확인: ", arr) # 데이터 삽입 확인: [1, 5, 2, 5, 3, 4, 5, 5]
# 리스트 내 '5' 원소의 개수 확인
print("리스트 내 '5' 원소의 개수: ", arr.count(5)) # 리스트 내 '5' 원소의 개수: 4
# 리스트 내 '5' 원소 제거
arr.remove(5)
print("원소 '5' 제거 후: ", arr) # 원소 '5' 제거 후: [1, 2, 5, 3, 4, 5, 5]
# 리스트 내 '5' 원소의 개수 확인
print("리스트 내 '5' 원소의 개수: ", arr.count(5)) # 리스트 내 '5' 원소의 개수: 3
데이터 삽입 시 시간 복잡도(append(), insert())
데이터 삽입 함수는 append()와 insert()가 있습니다. append() 함수는 리스트 맨 마지막 인덱스에 데이터를 삽입하면 되기 때문에 시간 복잡도가 \(O(1)\) 인 것과 달리, insert() 함수는 리스트 내 삽입될 원소의 위치를 정해줘야 하기 때문에 시간 복잡도가 \(O(N)\) 입니다. 따라서 코딩 대회(테스트) 등과 같이 시간 복잡도를 고려하여 문제를 풀어야 하는 경우에는 insert() 함수를 주의하여 사용할 필요가 있습니다.
데이터 삭제 시간 복잡도(remove())
데이터 삭제 함수는 remove()가 있습니다. 이 함수 역시 insert() 함수와 마찬가지로 리스트 내 특정 원소를 삭제한 후 리스트 내 원소들의 인덱스를 재조정해야 하기 때문에 시간 복잡도가 \(O(N)\) 입니다.
포스팅 내용에 오류가 있을 경우 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 건강한 하루 보내시길 바랍니다 :)
고맙습니다.
728x90
반응형
'SW 개발 > Python' 카테고리의 다른 글
[파이썬] 딕셔너리(Dictionary, 사전) 자료형에 대해 알아보자! (0) | 2021.04.18 |
---|---|
[파이썬] 리스트 내 1개 이상의 특정 값 삭제하는 방법! (2) | 2021.04.17 |
[파이썬] 리스트 컴프리헨션(list comprehension)에 대해 알아보자! (0) | 2021.04.13 |
[파이썬] 내장 함수를 활용한 데이터 정렬하기! (sorted, sort 함수) (0) | 2021.03.15 |
[파이썬] reduce 함수에 대해 알아보자(feat. lambda 표현식) (0) | 2021.02.26 |