model = [[[[0,0,0,0],...[0,0,0,0]]...[[0,0,0,0],...[0,0,0,0]]]...[[[0,0,0,0],...[0,0,0,0]]...[[0,0,0,0],...[0,0,0,0]]]]
과 같은리스트 인 model = [[[[0,0,0,0]]*4]*15]*5
으로 작성된 파이썬리스트가 있습니다. 문제는 내가중첩 된 파이썬리스트에 값을 자동으로 설정합니다.
def setLED(model,boardid,chipid,tankid,ledid,value): model[boardid][chipid][tankid][ledid]=value
4 제로의 모든 목록을 사용하여 다른 값으로 제로 중 하나를 설정하려고 할 때 동일하게 설정됩니다 있다는 것입니다. 즉, setLED (model, 0,0,0,0,255)를 사용하려고하면 모든 4 개의 0 목록의 첫 번째 값은 255가됩니다. 의도 한 결과는 4 개의 0으로 이루어진 첫 번째 목록 (즉, model [0 ] [0] [0] [0])가 변경됩니다. 나는 파일을 첨부하는 방법이 있다고 생각하지 않지만 누구든지 그것을 필요로한다면 나는 목록의 전체 내용을 게시 할 수있다.
왜 이런 일이 일어 났는지 알아낼 수있는 사람에게 미리 감사드립니다.
[[0]]*n
같은 배열에 n 개의 참조를 보유하는 배열을 생성하는 :
편집 :이 같은 배열의 배열을 만들 때이 Nested List Indices
타이핑하지 않고 그러한 구조를 만드는 가장 좋은 방법에 대한 권장 사항은 무엇입니까? 나는 numpy가 최고의 선택일지도 모른다라고 생각한다. 그러나 나는 그것을 아직 이해하지 않고 있었다. – user2461671