편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.06.28

    파이썬 초보. list insert 관련 질문. IndexError: list assignment index out of range


    a=[1,2,3,4,5]
    
    #a라는 리스트의 각 요소에 3배를 한 리스트b를 출력하라
    #Sol(Use for sentence)
    
    '''
    b=[]
    i=0
    for v in a:
            b.insert(i,3*v)
            i=i+1
    print(b)
    '''
    
    b=[]
    i=0
    for v in a:
            b[i]=3*v
            i=i+1
    print(b)
    

    여기에서 첨에 밑에 코드로 b를 출력하려 했는데

    Traceback (most recent call last):
      File "C:/Users/whdud/PycharmProjects/tw100/basic/__init__.py", line 19, in <module>
        b[i]=3*v  
    
    IndexError: list assignment index out of range
    

    라고 오류가 뜨면서 안되길래

    어느 요소에서 오류가뜬건지 이리저리 고쳐보다가 리스트에 요소삽입 insert함수가 생각나서 위에 '''로 주석화시킨 함수 대로 바꿔서 실행하니 잘 되었는데 왜 바로 공백리스트인 b에다가 요소를 추가하면 오류가뜨는 걸까요??

    제 생각에는

    '애초에 b라는 리스트를 공백으로 정의하였기때문에 각각의 요소들이 없는(정의되지않은) 상태라서 요소에 값을 바꾸는게 불가능해서 오류가 났다'. 인거 같은데 올바른 이유인가요? 그러면 insert함수는 요소들이 있든 없든 그자리에 요소를 추가해줄수 있는 함수인건가요?

    코딩 처음 시작하는데 책으로 독학하다가 궁금한게 생겨서 이렇게 질문해봅니다.

  • 프로필 엽토군님의 편집
    날짜2021.06.27

    파이썬 이제 배우는 초보인데요 질문이있습니다 질문해도 될까요??


    a=[1,2,3,4,5]
    
    #a라는 리스트의 각 요소에 3배를 한 리스트b를 출력하라
    
    
    #Sol(Use for sentence)
    
    '''
    
    b=[]
    
    i=0
    
    for v in a:
    
            b.insert(i,3*v)
            i=i+1
    print(b)
    
    
    
    
    '''
    
    
    
    
    b=[]
    
    i=0
    
    for v in a:
    
            b[i]=3*v
            i=i+1
    print(b)
    

    여기에서 첨에 밑에 코드로 b를 출력하려 했는데

    Traceback (most recent call last):
    
      File "C:/Users/whdud/PycharmProjects/tw100/basic/__init__.py", line 19, in <module>
        b[i]=3*v
    
    
    IndexError: list assignment index out of range
    

    라고 오류가 뜨면서 안되길래 어느 요소에서 오류가뜬건지 이리저리 고쳐보다가 리스트에 요소삽입 insert함수가 생각나서 위에 '''로 주석화시킨 함수 대로 바꿔서 실행하니 잘 되었는데 왜 바로 공백리스트인 b에다가 요소를 추가하면 오류가뜨는 걸까요??

    제 생각에는

    '애초에 b라는 리스트를 공백으로 정의하였기때문에 각각의 요소들이 없는(정의되지않은) 상태라서 요소에 값을 바꾸는게 불가능해서 오류가 났다'. 인거 같은데 올바른 이유인가요? 그러면 insert함수는 요소들이 있든 없든 그자리에 요소를 추가해줄수 있는 함수인건가요? 코딩 처음 시작하는데 책으로 독학하다가 궁금한게 생겨서 이렇게 질문해봅니다....

  • 프로필 조영진님의 편집
    날짜2021.06.27

    파이썬 이제 배우는 초보인데요 질문이있습니다 질문해도 될까요??


    a=[1,2,3,4,5]

    a라는 리스트의 각 요소에 3배를 한 리스트b를 출력하라

    Sol(Use for sentence)

    '''

    b=[]

    i=0

    for v in a:

        b.insert(i,3*v)
        i=i+1
    

    print(b)

    ''

    b=[]

    i=0

    for v in a:

        b[i]=3*v
        i=i+1
    

    print(b)

    여기에서 첨에 밑에 코드로 b를 출력하려 했는데

    Traceback (most recent call last):

    File "C:/Users/whdud/PycharmProjects/tw100/basic/init.py", line 19, in b[i]=3*v

    IndexError: list assignment index out of range 라고 오류가 뜨면서 안되길래 어느 요소에서 오류가뜬건지 이리저리 고쳐보다가 리스트에 요소삽입 insert함수가 생각나서 위에 '''로 주석화시킨 함수 대로 바꿔서 실행하니 잘 되었는데 왜 바로 공백리스트인 b에다가 요소를 추가하면 오류가뜨는 걸까요??

    제 생각에는

    1'.애초에 b라는 리스트를 공백으로 정의하였기때문에 각각의 요소들이 없는(정의되지않은) 상태라서 요소에 값을 바꾸는게 불가능해서 오류가 났다'. 인거 같은데 올바른 이유인가요? 그러면 insert함수는 요소들이 있든 없든 그자리에 요소를 추가해줄수 있는 함수인건가요? 코딩 처음 시작하는데 책으로 독학하다가 궁금한게 생겨서 이렇게 질문해봅니다....