티스토리 뷰

TIL Today I Learned

[TIL] 201103

adore_voy 2020. 11. 3. 19:25

- 파이썬으로 스택을 구현할 때 input은 append()로, remove는 pop()으로 구현한다.  스택은 상자를 아래에서 위로 차곡차곡 쌓고 위에서부터 옮기는 형식을 생각하면 된다.

 

- 파이썬으로 큐를 구현할 때 deque을 import해서 input은 append()로, remove는 popleft()를 이용한다. 스택처럼 list를 이용할 수 있으나, list를 이용하면 원소를 꺼내고 나머지를 전부 뒤로 옮기고 이런 비 효율적인 방법을 이용해야 하기 때문에 그냥 덱 이용해서 스택처럼 시작하되, 앞의 요소를 삭제할 수 있는 popleft()를 이용하고 역순으로 뒤집어버리는 방법을 이용한다.

큐는 터널과 같은 모습으로, 먼저 들어간 차가 먼저 터널을 빠져나온다.

 

- 파이썬 리스트를 복사해 사용하는 문제를 풀어야 할 때가 있다. 만일 아래와 같은 코드가 있다고 가정해보자.

oldList = [0, 1, 2, 3]
newList = oldList
print(newList)	#[0, 1, 2, 3]

눈으로 봤을 때 newList에 oldList요소가 복제된 것으로 보이지만, 이후의 코드에서 oldList를 수정했을 때 이 경우 newList도 수정되는 골치아픔을 겪게 된다.

때문에, 이럴땐 이렇게 하자.

oldList = [0, 1, 2, 3]
newList = oldList.copy()
print(newList)	#[0, 1, 2, 3]

이러면 결과는 같지만 oldList와 newList 둘이 각각 독립적인 사용이 가능해진다.


참고

jaeu0608.tistory.com/28

www.youtube.com/watch?v=7C9RgOcvkvo&t=1318s

반응형

'TIL Today I Learned' 카테고리의 다른 글

[TIL] 201106  (0) 2020.11.06
[TIL] 201104  (0) 2020.11.04
[TIL] 201102  (0) 2020.11.02
[TIL] 201101  (0) 2020.11.01
[TIL] 201030  (0) 2020.10.30
댓글