2017-03-08 2 views
-5

을 추가 내 파이썬 코드 파이썬은 여기에 하나 개의 값

pos = 0 

for i in range(-10,10): 
    x = 3*i + 1 
    dataX = [] 

    #dataX.append(x) 

    dataX.insert(pos,x) 
    print("insert "+str(x)+" at "+ str(pos) + "|" + str(dataX)) 
    pos += 1 

print(dataX) 

단순히 잘 작동합니다의 첨부

입니까? 그러나 다음과 같이

모두 반환 동일한 값을 .. .. 그렇지 않습니다,하지만 그래서 삽입은 그림과 같이 13의 반복이며, 아직이하지 않습니다 중 하나를 삽입하거나해야하는 추가

insert 1.9 at 13|[1.9] 

생성 된 데이터 목록

나는 그림과 같이 추가를 시도했지만 이전 데이터에서도 [1.9]의 결과를 얻지 못했다.

+2

여기에 "반환 된"것은 없으며 정의 된 함수가없고 함수가 호출되지 않습니다. 어떤 일이 일어날 지 명확하지 않지만, 직면하고있는 문제는 루프의 반복마다 'dataX'에 새 목록을 할당하여 발생했다고 의심됩니다. 즉 dataX = [] –

답변

1

루프를 반복 할 때마다 dataX을 새로 만듭니다. 그 을 루프 바깥에 외부에 놓습니다.

pos = 0 
dataX = [] 

for i in range(-10,10): 
    x = 3*i + 1 
    # etc. 
-2

루프의 반복마다 dataX를 다시 만듭니다. 루프 전에 선언해야합니다.