반응형
[ 파이썬 리스트 관련 함수 정리 ]
* 코드는 기본적으로 <입력값 # 출력값> 으로 구성되어 있습니다.
* 아래 [더보기] 클릭 후 [Ctrl + F] 단축키를 활용하여 찾고 계신 함수 위치로 바로 가실 수 있습니다.
더보기
리스트 연산자 : + , *
자료형 변환 : list
리스트 인덱싱 & 슬라이싱
리스트 복사 : =, list, [:], copy
리스트 내장 함수 : len, count
리스트 내장 함수 : append, insert, extend
리스트 내장 함수 : del, remove, pop, clear
리스트 내장 함수 : sort, sorted, reverse, reversed
리스트 내장 함수 : index, max, min, sum
type(변수) : 리스트(list)
a, b = [], list()
print(type(a)) # <class 'list'>
print(type(b)) # <class 'list'>
c = ['a', 'b', 123]
d = [1, [2, 2, [3, 3, [4, [5]]]]]
e = ['a', 1, ['리스트']]
print(type(c)) # <class 'list'>
print(type(d)) # <class 'list'>
print(type(e)) # <class 'list'>
리스트 연산자 : + , *
- 리스트 + 리스트 : 리스트 간 연결
- 리스트 * 정수 : 정수만큼 리스트 반복
a, b = [1, 2, 3], ['a', 'b', 'c']
print( a + b ) # [1, 2, 3, 'a', 'b', 'c']
print( a * 3 ) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
자료형 변환 : list
- list(값) : 값(문자열, 튜플 등)을 리스트로 변환
a = 'abcde'
print(type(a)) # <class 'str'>
print(list(a)) # ['a', 'b', 'c', 'd', 'e']
print(type(list(a))) # <class 'list'>
리스트 인덱싱 & 슬라이싱
- 인덱싱 : 변수[인덱스]
- 슬라이싱 : 변수[시작인덱스 : 종료인덱스] = a[x : x+3] = a[x], a[x+1], a[x+2]
a = ['a', 'b', 'c', 'd', 'e']
print(a[0]) # a
print(a[-1]) # e
print(a[2]) # c
print(a[1:3]) # ['b', 'c']
print(a[:]) # ['a', 'b', 'c', 'd', 'e']
print(a[:3]) # ['a', 'b', 'c']
print(a[3:]) # ['d', 'e']
a = ['a', 'b', ['c', 'd', ['e']]]
print(a[2]) # ['c', 'd', ['e']]
print(a[2][2]) # ['e']
print(a[2][2][0]) # e
print(a[2][0:2]) # ['c', 'd']
print(a[2][0:2][0]) # c
리스트 인덱싱 & 슬라이싱 응용: 리스트 요소 수정
- 인덱싱 : 변수[인덱스] = 수정할 값
- 수정할 값은 숫자형, 문자열, 리스트(다중 리스트 포함) 모두 가능함
- 슬라이싱 : 변수[시작인덱스 : 종료인덱스] = 수정할 리스트
- 변수[시작인덱스 : 종료인덱스] 와 수정할 리스트의 길이가 달라도 무관함
- 리스트 대신 문자열 등도 가능함
a = [1, 2, 3, 4, 5]
a[-1] = 'a'
print(a) # [1, 2, 3, 4, 'a']
a[-1] = [6, 7, 8]
print(a) # [1, 2, 3, 4, [6, 7, 8]]
a[-1] = 5
print(a) # [1, 2, 3, 4, 5]
a = [1, 2, 3, 4, 5]
a[1:3] = ['a', 'b']
print(a) # [1, 'a', 'b', 4, 5]
a[1:3] = [2, 2, 3, 3, 3]
print(a) # [1, 2, 2, 3, 3, 3, 4, 5]
a[1:6] = 'abc'
print(a) # [1, 'a', 'b', 'c', 4, 5]
리스트 복사 : =, list, [:], copy
- 리스트2 = 리스트1 : 리스트1 값을 리스트2 값에 저장함, 두 변수의 메모리 주소가 동일함
- 리스트2 = list(리스트1) : 리스트1 값을 리스트2 값에 저장함, 두 변수의 메모리 주소가 동일하지 않음
- 리스트2 = 리스트1[:] : 리스트1 값을 리스트2 값에 저장함, 두 변수의 메모리 주소가 동일하지 않음
- 리스트2 = 리스트1.copy() : 리스트1 값을 리스트2 값에 저장함, 두 변수의 메모리 주소가 동일하지 않음
a = [1, 2, 3]
b = a
print(id(a), id(b)) # 2073852014088 2073852014088
print(b is a) # True
a[1] = 8
print(a, b) # [1, 8, 3] [1, 8, 3]
a = [1, 2, 3]
c = list(a)
print(id(a), id(c)) # 2073852588808 2073851983240
print(c is a) # False
a[1] = 8
print(a, c) # [1, 8, 3] [1, 2, 3]
a = [1, 2, 3]
d = a[:]
print(id(a), id(d)) # 2073852622984 2073852588808
print(d is a) # False
a[1] = 8
print(a, d) # [1, 8, 3] [1, 2, 3]
a = [1, 2, 3]
e = a.copy()
print(id(a), id(e)) # 2073852012616 2073852622984
print(e is a) # False
a[1] = 8
print(a, e) # [1, 8, 3] [1, 2, 3]
리스트 내장 함수 : len, count
- len(리스트) : 리스트의 길이를 반환함
- 리스트.count(찾을 값): 리스트 내에서 찾을 값의 개수를 반환함
a = [1, 2, 3, 4, 5]
print(len(a)) # 5
a = [1, 2, 2, 3, 3, 3]
print(a.count(3)) # 3
리스트 내장 함수 : append, insert, extend
- 리스트.append(값) : 리스트 맨 끝에 지정된 값(숫자, 문자열, 리스트 등)을 추가함
- 리스트.insert(인덱스, 값) : 리스트 내 인덱스 위치에 지정된 값(숫자, 문자열, 리스트 등)을 추가함
- 리스트.extend(값) : 리스트 맨 끝에 지정된 값(숫자, 불리언 안 됨)를 추가함
a = [1, 2]
a.append(3)
print(a) # [1, 2, 3]
a.append([7, 8, 9])
print(a) # [1, 2, 3, [7, 8, 9]]
a = [1, 2, 3, 4, 5]
a.insert(2, 6)
print(a) # [1, 2, 6, 3, 4, 5]
a.insert(-1, [7, 8, 9])
print(a) # [1, 2, 6, 3, 4, [7, 8, 9], 5]
a = [1, 2]
a.extend([7, 8, 9])
print(a) # [1, 2, 7, 8, 9]
a.extend([[7, 8, 9]])
print(a) # [1, 2, 7, 8, 9, [7, 8, 9]]
a.extend('abc')
print(a) # [1, 2, 7, 8, 9, [7, 8, 9], 'a', 'b', 'c']
a.extend(123) # TypeError: 'int' object is not iterable
리스트 내장 함수 : del, remove, pop, clear
- del 리스트[인덱스] : 리스트 삭제
- 리스트.remove(찾을 값) : 리스트에서 가장 먼저 나오는 찾을 값을 삭제함
- 리스트.pop(인덱스) : 리스트 내 인덱스 위치의 값을 리턴한 뒤, 해당 값을 삭제함
- 리스트.clear() : 리스트 내 모든 값을 삭제함
a = [1, 2, 3, 4, 5, 6, 7]
del a[3]
print(a) # [1, 2, 3, 5, 6, 7]
del a[1:3]
print(a) # [1, 5, 6, 7]
del a
print(a) # NameError: name 'a' is not defined
a = [1, 2, 3, 1, 2, 3]
a.remove(2)
print(a) # [1, 3, 1, 2, 3]
a.remove(2)
print(a) # [1, 3, 1, 3]
a.remove(2) # ValueError: list.remove(x): x not in list
a = [1, 2, 3]
b = a.pop()
print(a, b) # [1, 2] 3
c = a.pop(0)
print(a, c) # [2] 1
d = a.pop()
print(a, d) # [] 2
e = a.pop() # IndexError: pop from empty list
a = [1, 2, 3, 4, 5, 6, 7]
a.clear()
print(a) # []
리스트 내장 함수 : sort, sorted, reverse, reversed
- 리스트.sort() : 리스트를 오름차순으로 정렬함, 리스트가 직접 변형됨
- 변수 = sorted(리스트) : 오름차순으로 정렬한 리스트 데이터를 변수에 저장함, 리스트가 직접 변형되지 않음
- 리스트.reverse() : 리스트를 역순으로 정렬함, 리스트가 직접 변형됨
- 변수 = reversed(리스트) : 역순으로 정렬한 리스트 데이터를 변수에 저장함, 리스트가 직접 변형되지 않음
a = [1, 3, 2]
a.sort()
print(a) # [1, 2, 3]
a = ['a', 'c', 'b']
a.sort()
print(a) # ['a', 'b', 'c']
a = [1, 3, 2, 'a', 'c', 'b']
a.sort() # TypeError: '<' not supported between instances of 'str' and 'int'
a = [1, 4, 3, 5, 2]
b = sorted(a)
print(a) # [1, 4, 3, 5, 2]
print(b) # [1, 2, 3, 4, 5]
a = [1, 3, 2]
a.reverse()
print(a) # [2, 3, 1]
a = ['a', 'c', 'b']
a.reverse()
print(a) # ['b', 'c', 'a']
a = [1, 3, 2, 'a', 'c', 'b']
a.reverse()
print(a) # ['b', 'c', 'a', 2, 3, 1]
a = [1, 4, 3, 5, 2]
b = reversed(a)
print(a) # [1, 4, 3, 5, 2]
print(b) # <list_reverseiterator object at 0x00000164A144E588>
c = list(b)
print(c) # [2, 5, 3, 4, 1]
리스트 내장 함수 심화
- 리스트.sort(reverse=True) : 리스트를 내림차순으로 정렬함, reverse=False 가 디폴트
- 리스트.sort(key = lambda 리스트:리스트[인덱스]): 다중 리스트의 경우 정렬 기준을 정의하여 오름차순으로 정렬함
- 변수 = sorted(리스트, reverse=True) : 내림차순으로 정렬한 리스트 데이터를 변수에 저장함
- 변수 = sorted(리스트, key = lambda 리스트:리스트[인덱스], reverse=True) : 다중 리스트의 경우 정렬 기준을 정의하여 오름차순으로 정렬함
a = [1, 4, 3, 5, 2]
a.sort(reverse=True)
print(a) # [5, 4, 3, 2, 1]
a = [['a', 1], ['b', 4], ['c', 3], ['d', 5], ['e', 2]]
a.sort(key = lambda a:a[1])
print(a) # [['a', 1], ['e', 2], ['c', 3], ['b', 4], ['d', 5]]
a = [1, 4, 3, 5, 2]
b = sorted(a, reverse=True)
print(a) # [1, 4, 3, 5, 2]
print(b) # [5, 4, 3, 2, 1]
a = [['a', 1], ['b', 4], ['c', 3], ['d', 5], ['e', 2]]
b = sorted(a, key = lambda a:a[1])
print(a) # [['a', 1], ['b', 4], ['c', 3], ['d', 5], ['e', 2]]
print(b) # [['a', 1], ['e', 2], ['c', 3], ['b', 4], ['d', 5]]
리스트 내장 함수 : index, max, min, sum
- 리스트.index(찾을 값, 시작인덱스, 종료인덱스) : 리스트 시작~종료 인덱스 사이에서 찾을 값이 처음 나타나는 위치를 반환함
- max(리스트) : 리스트 내 최댓값을 반환함
- min(리스트) : 리스트 내 최솟값을 반환함
- sum(리스트) : 리스트 내 총합을 계산하여 반환함
a = [1, 2, 'a', 'b', [1, 2]]
print(a.index('a')) # 2
print(a.index([1, 2])) # 4
print(a.index(3)) # ValueError: 3 is not in list
print(a.index('a', 0, 3)) # 2
print(a.index('b', 0, 3)) # ValueError: 'b' is not in list
a = [1, 2, 3]
print(max(a)) # 3
print(min(a)) # 1
print(sum(a)) # 6
리스트 내장 함수 심화
- max(리스트, key = lambda 리스트:리스트[인덱스]) : 다중 리스트의 경우 정렬 기준을 정의하여 리스트 내 최댓값을 탐색함
- min(리스트, key = lambda 리스트:리스트[인덱스]) : 다중 리스트의 경우 정렬 기준을 정의하여 리스트 내 최솟값을 탐색함
- max(리스트, default=값) : 리스트가 비어있을 때 default 값을 출력함
- min(리스트, default=값) : 리스트가 비어있을 때 default 값을 출력함
- sum(리스트, 기준 값) : 리스트 내 총합과 기준 값을 더함
a = [['a', 1], ['b',7], ['c', 3], ['d', -5], ['e', -9]]
print(max(a, key = lambda a:a[0])) # ['e', -9]
print(max(a, key = lambda a:a[1])) # ['b', 7]
print(max(a, key = lambda a:abs(a[1]))) # ['e', -9]
print(min(a, key = lambda a:a[0])) # ['a', 1]
print(min(a, key = lambda a:a[1])) # ['e', -9]
print(min(a, key = lambda a:abs(a[1]))) # ['a', 1]
a = []
print(max(a, default=1)) # 1
print(max(a)) # ValueError: max() arg is an empty sequence
print(min(a, default=1)) # 1
print(min(a)) # ValueError: min() arg is an empty sequence
a = [1, 2, 3]
print(sum(a, 10)) # 16
반응형
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] 딕셔너리 관련 함수 총정리 (0) | 2022.03.17 |
---|---|
[파이썬, Python] 세트 관련 함수 총정리 (0) | 2022.03.15 |
[파이썬, Python] 튜플 관련 함수 총정리 (0) | 2022.03.13 |
[파이썬, Python] 문자열 관련 함수 총정리 (0) | 2022.03.10 |
[파이썬, Python] 숫자형 관련 함수 총정리 (0) | 2022.03.08 |