1D 목록을 2D 목록에 여러 번 추가 할 때 2D 목록의 후속 변경 사항이 모든 행에 영향을 미치는 문제가 있습니다. 이 스레드 (Python list confusion)는 이유가 무엇인지 정리했습니다. 기본적으로 각 행은 동일한 하위 목록 또는 개체이므로 해당 하위 목록의 변경 사항이 2D 목록의 모든 행을 변경합니다. 그러나, 나는 그것을 고치는 방법을 모른다. 여기 내 예입니다다른 파이썬 목록에 목록 추가 추가
NumOfRows = 100
LanesToCheck = [0, 1, 2, 3]
Lanes = []
for j in range(0,NumOfRows):
Lanes.append(LanesToCheck)
LanesToCheck 각 행을 초기화하는 데 사용되며, 아이디어는 내 스크립트의 사용자가 단지 쉬운 코드의 위치에서이 1D 목록을 변경할 수 있으며, 전체 2 차원 배열이 초기화되는 것입니다. 그냥 사용할 수 있습니다.
Lanes.append([0, 1, 2, 3])
하지만이 LanesToCheck 상수는 사용자가 쉽게 액세스 할 수 있도록하고 싶습니다. 각 행이 별도의 엔티티 인 방식으로이 1D 배열을 사용하여 2D 배열을 초기화하는 방법이 있습니까?
당신은 심지어리스트 comprehension을 사용할 수 있습니다 :'Lanes = [range (NumOfRows)의 j에 대해 LanesToCheck [:] ' –
@ SergeBallesta 방금 행을 별도로 사용한다고 설명했습니다. 감사합니다. –