목록 목록의 효과적인 구현 (Effective implementation of list of lists)


문제 설명

목록 목록의 효과적인 구현 (Effective implementation of list of lists)

여기서 목록 목록을 구현하려고 합니다.

  • 외부 목록의 크기가 알려져 있습니다(예: N)
  • 각 요소 목록이 다르고 런타임에 결정됩니다.

이를 순진하게 구현하면 다음과 같을 수 있습니다.

L = [[] for x in range(N)]

그리고 L[i] 데이터가 다음과 같이 입력됩니다.

L[i] = range(M)

그러나 요소 목록이 현재 위치에 맞지 않는 경우 파이썬은 전체 목록을 새 위치에 복사해야 하므로 메모리가 매우 무거워집니다.

솔루션이 외부 목록에 연결 목록을 사용한다고 생각하지만 Python에 미리 정의된 연결 목록 구현이 없기 때문에 다른 솔루션이 있는지 궁금합니다.


참조 솔루션

방법 1:

Python doesn't store the sublists inside the outer list; it only stores references to the sublists inside the outer list. Reassigning an inner list will never require the outer list to be copied; at the implementation level, it's little more than a single pointer assignment.

If you're familiar with C# or Java, the terminology you'd be familiar with is that everything is a reference type in Python. If you're familiar with C++, think of it as how resizing an inner vector in a vector<vector<int>> wouldn't resize the outer vector.

(by MBZuser2357112)

참조 문서

  1. Effective implementation of list of lists (CC BY‑SA 2.5/3.0/4.0)

#list #Python #linked-list






관련 질문

파이썬에서 데이터를 정렬하는 방법 (How arrange data in python)

포스트백 후 모든 항목이 손실되는 CheckBoxList 컨트롤 (CheckBoxList control losing all items after post back)

목록 목록의 효과적인 구현 (Effective implementation of list of lists)

DictReader가 내 파일의 두 줄을 건너뛰고 있습니까? (DictReader is skipping two lines of my file?)

잘못된 값을 얻는 목록 확인 후 (After list checking getting wrong value)

결과를 세로 방향으로 저장하는 방법 (How do i save the result in a Vertical direction)

Python 2.x: 튜플 목록의 항목 합계 (Python 2.x: Summing items in a list of tuples)

itemgetter를 사용하지 않고 n번 발생하는 요소가 있는 목록 내 항목 인쇄 (Printing items inside a list which have an element that occurs n times without using itemgetter)

반환된 목록에서 장소가 바뀐 항목 삭제 (Deleting items that have the place swapped around in a returned list)

arrayToList가 홀수 출력을 생성합니다. 뭐가 문제 야? (arrayToList producing odd outputs. What's wrong?)

R 목록을 벡터로 바꾸는 방법과 목록이 필요한 이유 (R how to turn lists to vectors, and why a list at all)

python, 출력으로 코딩하는 동안 pycharm에서 이 메시지를 받았습니다. :TypeError: can't convert type 'list' to numerator/denominator (python , I got this message in pycharm while coding as output :TypeError: can't convert type 'list' to numerator/denominator)







코멘트