컴공과컴맹효묘의블로그

[효묘]초보자를 위한 Python강좌 리스트, 슬라이스 본문

컴퓨터/Python

[효묘]초보자를 위한 Python강좌 리스트, 슬라이스

효묘 2019. 6. 15. 13:40
반응형
리스트

 

이번 강좌에서는 리스트 반복문에 대해 알아보겠습니다.

 

사실 프로그래밍은 이 반복문만 잘 쓰면 됩니다.

 

 

 

 

Python에서 리스트라하면, C언어와의 배열과는 약간 다릅니다.

 

리스트를 선언하는 법 부터 알아보겠습니다.

 

num = [1,2,3,4,5]
print(num)

위 코드는 1,2,3,4,5라는 숫자를 순서대로 나열한 값을 num에 집어 넣는다는 뜻입니다. list는 말 그대로 값들을 나열합니다.

 

저기서 num을 출력해보면, [1, 2, 3, 4, 5]라고 나옵니다. 이처럼 리스트는 여러 값들을 저장할 때 쓰입니다. 예를 들어서 사람들의 이름을 저장하고 싶다고 생각합시다.

 

일단 리스트를 쓰지 않겠습니다.

name1 = "철수"
name2 = "영희"
name3 = "영수"

print(name1, name2, name3)

만약 3명의 이름을 저장하려면, 변수를 세 개 만들어야합니다.

 

100명의 이름을 저장하려면 변수를 100개 만들어야 하죠.

 

리스트는 이런 고생을 줄여줍니다.

 

names = ["철수", "영희", "영수", "길동", "민지"]
print(names)

6줄로 만들 코드를 단 2줄로 줄였습니다.

 

list형의 names 변수의 첫 번째에 저장되어 있는 값을 출력하고 싶을 때는 다음과 같이 쓰면 됩니다.

 

print(names[0])

names리스트의 첫 번째 값을 출력한다는 의미입니다. 여기서 왜 첫 번째가 1이 아니고 0이라고 쓰냐면, 컴퓨터는 숫자를 1부터 세지않고, 0부터 세는 특성 때문입니다.

 

이 names[ ]에서 [ ] 안의 값을 보통 index라고 부릅니다.

 

 

슬라이스 라는 개념도 있습니다.

 

슬라이스란, 말 그대로 배열을 자른다는 의미인데요, 슬라이스를 통해 names의 2번째부터 4번째까지의 이름을 출력할 수 있습니다.

print(names[1:4])

2번째, 즉 names[1]부터 4번째인 names[3]까지 list의 형태로 출력한다는 의미입니다.

 

인덱스를 생략할 수도 있습니다.

print(names[:4]) #== print(names[0:4])  첫 번째 인덱스 부터 n-1까지
print(names[2:]) #== print(names[2:4]) n번째 인덱스 부터 마지막 인덱스 까지

 

좀 더 많은 데이터를 다루기 위해서 range함수를 써보겠습니다.

num = [v for v in range(100)]

for문은 다음 강좌에서 다루겠습니다. 일단 이 구문이 0부터 99까지 총 100개의 숫자를 list형태로 저장한다는 것만 기억하십시오.

 

print(num)
>>[0, 1, 2, 3, 4, ......... , 97, 98, 99]

 

슬라이스의 기능 한가지를 더 소개하겠습니다.

 

print(num[::3]) #첫 번째 인덱스부터 3번째씩 출력..
>>[0, 3, 6, 9, ....... , 93, 96, 99]

인덱스의 증가폭을 결정해줘서 다음과 같이 출력할 수 있습니다.

 

 

슬라이스의 기능을 정리하겠습니다.

num[n:m:i]
[n번째 인덱스 부터: m-1까지의 인덱스까지:i번 마다]

 

 

이번 리스트 강좌를 마치고 다음에는 반복문을 알려드리겠습니다.

아직 많이 부족한 강좌지만 봐주셔서 감사합니다.

반응형
Comments