다음을 통해 dir(list)
목록에 포함된 내장 함수를 봅니다.
1. 요소를 추가하기 위해 추가
list.append(obj)
같은 list += [obj]
_
a = [1, 2, 3]
a += [4]
a.append(5)
print(a)
>>> [1, 2, 3, 4, 5]
2. 목록을 지우려면 지우기
list.clear()
같은 list = []
_
a = [1, 2, 3]
a.clear()
print(a)
>>> []
3. 카피 카피
얕은 복사와 깊은
복사 포함 얕은 복사는 다음과 같습니다 b = a
. 복사 후 a와 b는 동일한 주소를 가지며 동일한 메모리 공간을 가리킵니다. 내부 데이터 중 하나가 수정되면 다른 데이터도 함께 수정됩니다(shallow 포함). 함수를 전달할 때 수정되는 복사본).
깊은 복사는 다음과 같습니다 c = a.copy()
. 이때 c는 a에 데이터를 저장하기 위해 새로운 메모리 공간을 열지만 a와 c의 주소는 다르지만 처음 세 데이터를 수정해도 각각 영향을 미치지 않음을 알 수 있습니다. other, but a[3] and c[3] 주소는 동일하므로 네 번째 항목의 두 번째 수준 목록에 있는 데이터를 수정하면 여전히 서로 영향을 미칩니다.
개인적인 이해: c가 데이터를 저장하기 위해 새로운 메모리 공간을 열었지만 a[3] 자체는 이 두 번째 수준 목록의 주소를 저장하므로 a[3]과 c[3]은 동일한 주소를 가리키고 값을 수정하는 것은 자연스러우며 서로 영향을 미칩니다. 사용하면 copy.deepcopy()
내부 레이어도 완전히 딥 카피할 수 있습니다.
import copy
a = [1, 2, 3, [4, 5, 6]]
b = a
c = a.copy()
d = copy.deepcopy(a)
print('a: ', id(a))
print('b: ', id(b))
print('c: ', id(c))
print('a[3]: ', id(a[3]))
print('c[3]: ', id(c[3]))
print('d[3]: ', id(d[3]))
>>>
a: 140296574785088
b: 140296574785088
c: 140296574786368
a[3]: 140296574785248
c[3]: 140296574785248
d[3]: 140296574784528
4. 카운트 카운트
a = [[1, 2, 3], [1, 2, 3]]
print(a.count([1, 2, 3]))
>>> 2
5. extend는 반복 가능한 객체를 추가합니다.
list.extend(Iterable)
같은 list += Iterable
_
a = [1, 2, 3]
a.extend([1, 2, 3, [4, 5, 6]])
print(a)
>>> [1, 2, 3, 1, 2, 3, [4, 5, 6]]
6. index 요소의 첨자를 가져옵니다.
반복되는 요소가 있는 경우 첫 번째 요소의 첨자만 반환하고 해당 요소가 없으면 바로 오류를 보고합니다.
a = [1, 2, 3, 1]
print(a.index(1))
>>> 0
7. 삽입 지정된 위치에 요소 추가
a = [1, 2, 3]
a.insert(1, 10)
print(a)
>>> [1, 10, 2, 3]
8. pop은 지정된 위치에 있는 요소를 삭제하고 반환합니다.
a = [1, 2, 3]
print(a.pop(1), a)
>>> 2 [1, 3]
9. 삭제 요소 제거
중복 요소가 있는 경우 첫 번째 요소만 삭제되며 요소가 존재하지 않으면 바로 오류가 보고됩니다.
a = [1, 2, 3, 1]
a.remove(1)
print(a)
>>> [2, 3, 1]
10. 뒤집기 목록
내부 레이어가 뒤집히지 않음
a = [1, 2, 3, [1, 2, 3]]
a.reverse()
print(a)
>>> [[1, 2, 3], 3, 2, 1]
11. 정렬 정렬
reverse=bool
정렬 방향 제어 기능
key
과 연동하여 각 항목의 두 번째 요소의 크기로 정렬, 각 항목의 길이로 정렬 등 lambda
정렬 기준을 선택합니다 . 참고: 두 항목의 첫 번째 요소가 같을 경우 다음 요소를 순차적으로 비교합니다. 위치는 앞이며 첫 번째 요소만 비교합니다.동일한 경우 원래 순서대로 정렬됩니다.lambda x: x[1]
lambda x: len(x)
a.sort()
[1,3]
[1,7]
a.sort(key=lambda x: x[0])
a = [[2, 4], [1, 7], [2, 1], [1, 3]]
a.sort()
print(a)
a.sort(reverse=True)
print(a)
a.sort(key=lambda x: x[0])
print(a)
a.sort(key=lambda x: x[1])
print(a)
>>>
[[1, 3], [1, 7], [2, 1], [2, 4]]
[[2, 4], [2, 1], [1, 7], [1, 3]]
[[1, 7], [1, 3], [2, 4], [2, 1]]
[[2, 1], [1, 3], [2, 4], [1, 7]]