본문 바로가기

python

day18. 리스트(list, range, len)

#day.18

 

a=10 b=20

지금까지 변수에는 값을 한 개씩만 저장했다.

 

값을 30개 저장하려면? 변수30개에 30개를 저장하면된다^^;;;;;;는 말이 안되니까

리스트를 만들어 봅시다!

 

a = [38, 21, 55, 61, 71]

 

그냥 [ ] 에 값을 저장하여 리스트를 만들어 주면 된다.

리스트는 문자열 정수 실수 불 등 모든 자료형을 저장할 수 있으며, 자료형을 섞어서 저장해도된다.

 

**SyntaxError: invalid syntax : [ ]의 짝이 맞지 않거나 , 를 넣지 않아서 에러가 발생한다 --제대로 확인하기!~

 

리스트 = list(range(횟수))

리스트 = list(range(시작, 끝))

리스트 = list(range(시작, 끝, 증가폭))

 

요로코롬 답이 나온다

 


-리스트의 요소 접근을 해보자

얼라리 왜 3번째 칸이 47이라고 뜨는것일까? 리스트의 인덱스(index)는 항상 0부터 시작하기 때문이다.

     1       2       3       4       5       6
 
  a[0]   a[1]   a[2]   a[3]   a[4]   a[5] 

a[-6]  a[-5]  a[-4]  a[-3]  a[-2]  a[-1]

a[6]을 찾으면, 리스트의 범위를 벗어났으므로 에러가 생긴다.

리스트의 뒤에서 첫 번째 (인덱스 -1) 요소 출력


-리스트의 요소개수 구하기

평소에 작성할 때는 요소의 개수를 알기 쉽다. 실무에서는 함수 등을 사용해서 리스트를 생성하거나 값을 추가하기 때문에 요소의 개수가 눈에 보이지 않는다. 그런경우 len 함수를 사용하여 요소 개수를 구한다.(range도 함께 사용)

a= [0,1,2,3,4,5,6,7,8,9,23,24,5,26]
len(a)

>>13
b= list(range(2321, 3569, 3))
len(b)

>>416

-리스트의 인덱스 활용하기 

a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[0:4]

>>[0, 10, 20, 30]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[1:1]

>>[ ]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[1:2]

>>[10]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[4:7]

>>[40, 50, 60]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[4:-1]

>>[40. 50, 60, 70, 80]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[:7]

>>[0, 10, 20, 30, 40, 50, 60]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[7:]

>>[70, 80, 90]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[:]

>>[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[0:len(a)] / a[:len(a)]

>>[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

-1은 뒤에서 첫 번째 요소를 뜻하는데 끝 인덱스는 가져오려는 인덱스보다 1을 더 크게 지정한다고 했으므로 실제로는 뒤에서 두 번째 (-2) 요소인 80 까지만 가져온다. (음수는 숫자가 작을수록 큰 수이다. 그래서 -1은 -2보다 1이 더크다.)

 

a의 요소는 10개이다. 따라서 len(a)는 10이고, a[0:10]과 같다.

길이가 10인 리스트는 [0:10] 이여야 전체 문자열을 가져온다.