코드는 매우 비슷합니다. 빈 리스트를 만들 때처럼 리스트를 선언하고 대괄호([]) 안에 초깃값과 반복문을 넣어 줍니다. 초깃값은 0이고 24번 반복하므로 population = [0 for i in range(24)]가 됩니다. 이때 반복문에 콜론(:)은 넣지 않습니다. 구조를 잘 살펴보면 population.append()가 빠지고 나머지 코드가 대괄호 안에 들어갑니다. 이처럼 리스트 안에 반복문을 포함하는 것을 리스트 내포라고 합니다.
population = [0 for i in range(24)]
print(len(population), population)
실행결과
24 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
길이가 24인 population 리스트가 생성됐고, 각 요소에도 초깃값 0이 저장됐습니다.
이를 조금만 변형해서 population에 숫자 0부터 23까지 차례대로 넣는 방법을 생각해 봅시다. 반복문 for i in range(24)를 실행하면 i에 0부터 23까지 차례대로 담기죠. 따라서 앞의 초깃값 0 대신 i를 넣어 population = [i for i in range(24)]라고 작성하면 됩니다. 실행해 봅시다.
population = [i for i in range(24)]
print(len(population), population)
실행결과
24 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
이처럼 리스트 생성과 동시에 초기화하는 방법을 활용하면 코드가 더욱 간결해집니다.