목록을 한 번에 2 번 (10 번) 나누고 각 파티션에서 작업을 수행하려고합니다. 한 번에 1 : 9의 비율로 목록에서이 작업을 수행하려고합니다. 목록을 10 배로 나누었고 첫 번째 반복에서 첫 번째 접기와 나머지 9에서 작업을 수행하고 두 번째 반복에서는 두 번째 접기와 나머지 9에서 작업을 수행합니다. 이제는 원래 목록의 복사본을 유지하고 접미사 중 하나를 임시 변수에 할당하고 목록에서 삭제 한 다음 나머지를 두 번째 파티션으로 가져 오기로 결정했습니다. 그런 다음 목록의 사본을 다음 반복을 위해 목록에 다시 할당하십시오. 그러나 복사본과 원본은 항상 for 루프에서 동일하므로 범위를 벗어난 인덱스의 인덱스를 얻는 것으로 보입니다. 여기서 문제의 간단한 예이다Python - for 루프에서 목록 요소를 삭제하고 목록을 다시 할당
>>> a = ['a', 'b', 'c', 'd', 'e', 'f']
>>> b = a
>>> b
['a', 'b', 'c', 'd', 'e', 'f']
>>> for i in xrange (len(a)):
del (b [i])
b = a
Traceback (most recent call last):
File "<pyshell#22>", line 2, in <module>
del (b [i])
IndexError: list assignment index out of range
메모리에 모두 동일한 위치 A 및 B 지점이 상기리스트의 실제 콘텐츠를 저장하는 하나의 위치 만이 있음을 보인다. 여기에있는 문제가 무엇이고 어떻게 해결할 수 있습니까? 미리 감사드립니다!
** + 1 ** 똑같은 이유로 똑딱 의자 – Eric
를 보여주었습니다. 정말 유용합니다. 감사합니다! – poke
@sidi : 고마워요, 정답과 열혈 사용자를 모두 표시합니다! – user823743