Miner

정리 2 본문

Python

정리 2

MineTime76 2023. 6. 18. 16:13

1. 3개의 튜플에서 첫째항만 비교해서 Max 값을 구하는 방법

 

points = [(1, 1), (2, 9), (3, 1)]

max_x = max(points, key=lambda point: point[0]) 

 

        if dq and a[0] >= (max(dq,key = lambda x : x[0])[0]):

max 를 한다는 것은 max 인 원소를 뽑는 것이기 때문에 뒤에 인덱스 표시를 무조건 해야 한다.

2. 덱큐 만들 때 주의

dq = deque([(1, 1), (2, 9), (3, 1)])

안에 반드시 리스트 써줄것

 

 

TypeError: 'int' object is not subscriptable

 

3. deque는 

popleft appendleft append pop

 

큐 나 덱 으로 합산을 계속적으로 하는 연산을 할 경우 

연산을 저장하는 변수를 하나 만들어서 

덱에서 뺴면서 변수에 값을 추가하고 빼고

덱에서 빼는 것은 O(1) 이고 max 구하는 것은 O(n) 이니까

 

4. 네, 맞습니다. 슬라이싱을 사용하여 리스트를 복사하는 방법도 있습니다. 슬라이싱을 사용하면 얕은 복사가 수행됩니다.

예를 들어, original_list라는 리스트를 복사하여 copy_list를 생성하려면 다음과 같이 슬라이싱을 사용할 수 있습니다:

슬라이싱을 통한 복사도 얕은 복사이므로, 내부 요소는 동일한 객체를 참조합니다. 따라서 원본 리스트의 내부 요소가 변경되면 복사한 리스트의 내부 요소도 변경됩니다.

중요한 점은 얕은 복사와 슬라이싱을 사용하여 복사할 경우, 리스트 내부에 포함된 가변 객체(예: 리스트, 딕셔너리)는 원본과 복사본이 같은 객체를 참조할 수 있습니다. 이러한 경우에는 깊은 복사를 사용해야 원본과 복사본이 완전히 별개의 객체를 가지게 됩니다.

original_list = [1, 2, 3] copy_list = original_list[:]

 

import copy

original_list = [1, 2, 3]

deep_copy = copy.deepcopy(original_list)

 

'Python' 카테고리의 다른 글

map 객체가 리턴 될때  (0) 2024.03.20
정리 3  (0) 2023.06.19
정리1  (0) 2023.06.18
immutable / mutable  (0) 2023.03.20
[Baekjoon] 10951  (0) 2023.01.30