2017-12-03 2 views
0

나는이 같은 코드가 있습니다list.insert()는 실제로 파이썬에서 무엇을합니까?

squares = [] 
for value in range(1, 5): 
    squares.insert(value+1,value**2) 

print(squares) 
print(squares[0]) 
print(len(squares)) 

을 그리고 출력은 다음과 같습니다 그래서

[1, 4, 9, 16] 

1 

4 

나는 인덱스 '2'에서 '1'을 삽입 파이썬을 요구하더라도, 그것은 사용할 수있는 처음에 삽입 색인. 그러면 '삽입'이 어떻게 결정을 내릴 수 있습니까? Python3 doc에서

+0

요소가 없으면 그냥 '꼬리'에 삽입합니다. 예를 들어, 언급 한 동작이 명확하지 않습니다. – user1767754

+1

문서에 나와있는 것과 정확히 일치합니다. 어느 부분이 불분명합니까? –

+0

@JohnZwinck는 "정확하게"색인이 목록의 len보다 큰 경우 어떻게되는지 말합니다. –

답변

1

:

list.insert(i, x)

는 주어진 위치에 항목을 삽입합니다. 첫 번째 인수는 삽입하기 전에 요소의 인덱스이므로 a.insert (0, x)가 목록의 앞에 삽입하고 a.insert (len (a), x)는 a와 같습니다. .append (x).

언급되지 않은 점은 범위를 벗어난 색인을 제공 할 수 있고 Python이 목록에 추가한다는 것입니다. 당신이 Python implementation 파고 경우

것은 당신이 삽입을 수행하는 ins1 기능에서 다음을 찾을 :

if (where > n) 
    where = n; 

그래서 기본적으로 파이썬 것이다 최대리스트의 길이에 색인 밖으로.

+0

나는 재판을 통해 그것을 얻었지만, 확실하게 구현을 읽을 것입니다. –

+0

확인 됨, 인덱스가 너무 크면 파이썬이 길이를 다시 설정한다고 지적했다. –

관련 문제