자, 다시 시도해 보겠습니다. 1 세트의 데이터가 있습니다. 나는 2 개의 복사본을 만들고 다른 열을 기반으로 내림차순으로 복사본을 정렬하려고합니다. 그런 다음 각 열의 누적 합계를 구합니다. 다음 코드를 실행할 때 print (setA [x] [2])를 호출하는 두 인스턴스에 대해 다른 결과를 얻습니다.for 루프로 합계 할 때 다른 결과를주는 파이썬 누적 합계
5
6
8
6
을하지만 대신
5
6
5
6
을 미치지 :
set = [[2,2,0],[1,3,0],[3,1,0]]
def getkey_setA (item):
return item[0]
setA = sorted(set, key=getkey_setA, reverse=True)
def getkey_setB (item):
return item[1]
setB = sorted(set, key=getkey_setB, reverse=True)
setA[0][2] = setA[0][0]
setB[0][2] = setB[0][1]
for x in range(1, 3):
setA[x][2] = setA[x-1][2] + setA[x][0]
print(setA[x][2])
for x in range(1, 3):
setB[x][2] = setB[x-1][2] + setB[x][1]
for x in range(1, 3):
print (setA[x][2])
이 생산하고 있습니다.
목록에 * 공유 참조 *가있는 것 같습니다 (아마도 목록을 복사하지 않았을 것입니다.) (http://stackoverflow.com/questions/2612802/how-to-clone-or-copy -목록))? 그러나 [MCVE]가 없다면 우리는 도울 수 없습니다. –
Gotcha. 위의 편집 된 예를 참조하십시오. – Jellybeard
그리고 생성되는 출력은 무엇이며 예상 출력은 무엇입니까? –