콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2025. 8. 12. 16:38
반응형

결론을 먼저 언급한다면)

append()나 insert() 같은 리스트 메서드를 사용하지 않고 리스트에 값을 넣으려면, 리스트를 선언할 때 미리 초기값을 할당해 주어야 합니다.

 

설명시작)

파이썬 프로그래밍 언어 내에서 가장 많이 쓰이는 구조인 리스트를 이용하면 많은 양의 데이터들을 한번에 모아 효율적으로 처리하고 저장할 수 있습니다.

 

기존의 변수는 오직 하나의 데이터를 저장하기 때문에 1,000명의 점수 데이터를 저장하기 위해서는 1,000개의 변수가 필요합니다.

하지만, 리스트는 오직 하나의 리스트 변수를 이용하여 1,000명의 점수 데이터를 효율적으로 저장하고 처리할 수 있습니다.

 

소스)

a=[10, 20, 30, 40]

a[0]=int(input('num1: '))
a[1]=int(input('num2: '))
a[2]=int(input('num3: '))
a[3]=int(input('num4: '))

hap=a[0]+a[1]+a[2]+a[3]

print('hap', hap)

 

결과)

num1: 10
num2: 20
num3: 30
num4: 40
hap 100
에서 a=[10, 20, 30, 40]은 a라는 리스트 변수에, 10,20,30,40 이라는 초기값으로 넣어준 이유

 

답변)

네, 맞습니다.

a = [10, 20, 30, 40]는 a라는 이름의 리스트 변수를 만들고, 그 안에 초기값으로 정수 10, 20, 30, 40을 할당하는 코드입니다.

이후에 나오는 코드 a[0] = int(input('num1: ')) 등은 사용자가 입력하는 값으로 리스트 a의 기존 초기값들을 덮어쓰게 됩니다.

 

추가질문)

a=[] 이렇게 비어있으면, 왜 에러가 출력되나요?

답변)

a = []와 같이 빈 리스트를 만들고, a[0] = 10처럼 바로 인덱스를 사용해 값을 할당하려 하면 에러가 발생합니다.

이는 리스트가 비어있기 때문에, a[0]이라는 인덱스 자체가 아직 존재하지 않아서 생기는 문제입니다. 리스트에 값을 추가하려면 다음과 같은 방법을 사용해야 합니다.

1. append() 메서드 사용


append()는 리스트의 맨 뒤에 요소를 추가하는 가장 일반적인 방법입니다.

Python
 
a = []
a.append(10)  # a는 이제 [10]이 됩니다.
a.append(20)  # a는 이제 [10, 20]이 됩니다.
print(a)

2. insert() 메서드 사용


insert()는 특정 **위치(인덱스)**에 요소를 삽입하는 방법입니다.

Python
 
a = [10, 30]
a.insert(1, 20)  # 1번 인덱스에 20을 삽입합니다.
print(a)  # 출력: [10, 20, 30]

3. 미리 초기값을 할당


가장 처음 질문하셨던 코드처럼, 아예 리스트를 만들 때부터 초기값을 정해주는 방법입니다. 이 경우에는 이미 인덱스가 존재하므로, a[0]과 같이 인덱스로 값을 변경할 수 있습니다.

Python
 
a = [0, 0, 0, 0]  # 4개의 초기값으로 리스트를 만듭니다.
a[0] = 10  # 0번 인덱스의 값을 10으로 변경합니다.
a[1] = 20  # 1번 인덱스의 값을 20으로 변경합니다.
print(a)  # 출력: [10, 20, 0, 0]

 

중요 질문)

append, insert등을 사용하지 않는다면, 무조건 초기값을 넣어주어야 하나요?

 

답변)

네, 맞습니다. append()나 insert() 같은 리스트 메서드를 사용하지 않고 리스트에 값을 넣으려면, 리스트를 선언할 때 미리 초기값을 할당해 주어야 합니다.


리스트에 값을 추가하는 두 가지 주요 방법

파이썬에서 리스트에 값을 넣는 방법은 크게 두 가지로 나뉩니다.

  1. 초기값 할당: 리스트를 처음 만들 때부터 미리 값들을 넣어주는 방법입니다. 이 방법은 리스트의 크기가 정해져 있을 때 유용합니다.이 방식은 리스트의 크기가 고정되어 있고, 그 값만 변경하고 싶을 때 주로 사용됩니다.
  2. Python
     
    # 4개의 공간을 0으로 미리 채워 놓았습니다.
    a = [0, 0, 0, 0]
    
    # 이미 존재하는 인덱스에 접근해 값을 수정합니다.
    a[0] = 10
    print(a)  # 출력: [10, 0, 0, 0]
    
  3. 동적 추가: append()나 insert()와 같은 메서드를 사용해 리스트가 비어 있거나 크기가 변할 때마다 값을 추가하는 방법입니다.이 방식은 리스트의 크기가 유동적일 때 아주 유용합니다.
  4. Python
     
    # 빈 리스트를 만들었습니다.
    a = []
    
    # append()를 사용해 값을 하나씩 추가합니다.
    a.append(10)
    print(a)  # 출력: [10]
    

만약 빈 리스트 a = []를 만들어 놓고 a[0] = 10과 같이 인덱스를 사용해 값을 할당하려 하면, IndexError: list assignment index out of range라는 에러가 발생합니다. 이 에러는 "존재하지 않는 인덱스에 접근했다"는 의미입니다. 빈 리스트에는 아직 0번 인덱스가 없기 때문이죠.

 

위 그림의 좌측처럼, 비어 있는 리스트에 존재하지 않는 인덱스로 값을 넣으려고 하면 IndexError가 발생합니다.

반면, 우측의 올바른 방법 두 가지를 사용하면 문제없이 값을 넣을 수 있습니다.

  • append() 사용: 빈 리스트에 값을 하나씩 추가하여 리스트의 크기를 늘립니다.

초기값 할당: 리스트를 만들 때 미리 값을 넣어주어, 인덱스를 처음부터 존재하게 만듭니다.

반응형

콘텐츠 내 자동삽입광고