반응형
이 반복적 인리스트 증가 코드가 왜 IndexError :리스트 할당 인덱스가 범위를 벗어 납니까?
다음 코드를 고려하십시오 :
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
print j
출력 (Win 7 32 비트의 Python 2.6.6)은 다음과 같습니다.
> Traceback (most recent call last):
> j[k] = l IndexError: list assignment index out of range
나는 그것이 이해하지 못하는 단순한 것 같아요. 누군가 그것을 정리할 수 있습니까?
j
는 빈 목록이지만 [0]
아직 존재하지 않는 첫 번째 반복에서 요소 에 쓰려고합니다 .
대신 목록 끝에 새 요소를 추가하려면 다음을 시도하십시오.
for l in i:
j.append(l)
다른 옵션은 초기화하는 것입니다 j
.
j = [None] * len(i)
수행 j.append(l)
대신 j[k] = l
하고 피하기는 k
전혀.
당신은 또한 목록 이해를 사용할 수 있습니다 :
j = [l for l in i]
또는 진술을 사용하여 사본을 만드십시오.
j = i[:]
j.append(l)
또한 소문자 "L"은 1과 혼동하기 쉽기 때문에 사용하지 마십시오.
나는 파이썬 메소드 삽입 이 당신이 찾고있는 것이라고 생각합니다 .
위치 i에 요소 x를 삽입합니다. list.insert (i, x)
array = [1,2,3,4,5]
array.insert(1,20)
print(array)
# prints [1,2,20,3,4,5]
j에 대한 사전 (연관 배열과 유사)을 사용할 수 있습니다.
i = [1, 2, 3, 5, 8, 13]
j = {} #initiate as dictionary
k = 0
for l in i:
j[k] = l
k += 1
print j
인쇄합니다 :
{0: 1, 1: 2, 2: 3, 3: 5, 4: 8, 5: 13}
한 가지 더 방법 :
j=i[0]
for k in range(1,len(i)):
j = numpy.vstack([j,i[k]])
이 경우 j
numpy 배열이됩니다.
배열이있는 파이썬에서는 배열에 요소를 추가하고 추가 할 수 있습니다
아마 당신은 extend () 가 필요할 것입니다
i=[1,3,5,7]
j=[]
j.extend(i)
j를 빈 목록으로 지정하고 루프에서 j의 0 번째 색인 값을 찾으려고 시도하는 것은 확실하게 작동하지 않습니다. j.append (l) 사용해보십시오. 작동합니다.
반응형
'Programing' 카테고리의 다른 글
PowerShell의 삼항 연산자 (0) | 2020.05.26 |
---|---|
Java 클래스가로드 된 위치 찾기 (0) | 2020.05.26 |
요청과 응답을 어떻게 조롱 할 수 있습니까? (0) | 2020.05.26 |
Java 캘린더를 사용하여 날짜에서 X 일을 빼는 방법은 무엇입니까? (0) | 2020.05.26 |
MySQL 테이블에서 모든 행을 삭제하고 ID를 0으로 재설정 (0) | 2020.05.26 |