티스토리 뷰





01. List(리스트) 


▶리스트 자료형 : 특정한 자료를 하나의 변수 취급하기 위한 자료형

▶리스트 형식

리스트 명 = [요소1, 요소2, 요소3, 요소4 ]

          (시각편의를 위해 IDLE 사용)



▶리스트는 여러가지 형태로 만들 수 있다.

>>> a = []

>>> b = [1,2,3]

>>> c = ['Life', 'is', 'Short']

>>> d = [1, 2, 'Life', 'is', 'Short']

>>> e = [1, 2, 'Life', 3.0 , "Short"]

>>> f = [1,2,[‘Life’, ‘Is’, ‘Short’]]


01-1. 리스트 인덱싱


▶리스트 인덱싱 형식

 변수명[인덱스번호]1.인덱스 번호는 0부터 시작

        2.요소의 범위를 넘어서면 안됨

▶리스트의 요소에 접근하기 위하여 변수의 인덱싱을 사용


☆리스트 인덱싱


▶리스트 인덱스의 요소의 범위를 넘어갔을 때


→ error가 나는 것을 볼 수 있다. (error 처리는 뒤의 챕터에 나옴)


☆리스트 인덱싱 type




01-2. 리스트 내 리스트의 인덱싱


▶ 리스트가 다른 리스트를 포함한 경우의 인덱싱

 


      →c[2][0] 일반적으로 다차원 배열이라고 불린다.


리스트 내 리트스의 인덱싱 예제



☆예제 풀이


>>> d = [ 'Test' , [ 'ODD' , [ 1, 3, 5, 7, 9] ] , [ 'EVEN' , [ 0 , 2 , 4 , 6 , 8 , ] ] ]

>>> d[0]
'Test'

>>> d[1]
['ODD', [1, 3, 5, 7, 9]]
>>> d[1][1]
[1, 3, 5, 7, 9]
>>> d[1][1][1]
3
>>> d[2]
['EVEN', [0, 2, 4, 6, 8]]
>>> d[2][1][4]
8
>>>

→ 다차원 배열의 문제에서는 트리형식으로 답을 찾아가는 것이 헷갈리지 않고 답을 찾을 수 있다.

-----------------------------------------------


☆예제의 type


>>> type(d)
<class 'list'>           ---리스트
>>> type(d[2][1][4])
<class 'int'>            ---숫자
>>> d[1][1]
[1, 3, 5, 7, 9]
>>> type(d[1][1])
<class 'list'>           ---리스트
>>> type(d[0])
<class 'str'>            --문자열
>>> d[1][0]
'ODD'
>>> type(d[1][0])
<class 'str'>            --문자열
>>>


01-3. 리스트에서 슬라이싱


 ▶문자열과 마찬가지로 리스트에서도 슬라이싱 사용가능

→리스트의 요소를 추출 할 수 있다.



01-3-1. 다중 리스트에서 슬라이싱



01-4 리스트 연산자


리스트에서 연산

→연산자( + , * 사용 가능

>>> a = [1,2,3]

>>> a + a

[1, 2, 3, 1, 2, 3]

>>> a * 2

1, 2, 3, 1, 2, 3]


a를 여러 개 곱할때는 숫자로 곱해준다 a*a를 사용할 경우 error가 생김

>>> a * a
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'list


▶ 리스트 요소의 수정


>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> a[0]
1
>>> a[0]=10        --a[0]의 자리에 10을 넣어준다
>>> a
[10, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> a[0:2]=[1,3]
>>> a
[1, 3, 3, 4, 5, 6, 7, 8, 9, 0]
>>> a[1]=[1,2,3]    --a[1]의 자리에 리스트[1,2,3]을 넣어준다 
>>> a               (수정할 때 리스트를 통째로 넣어줄 수 있음)
[1, [1, 2, 3], 3, 4, 5, 6, 7, 8, 9, 0]
>>>


▶ 리스트 요소의 변경 / 삭제


>>> a
[3, 4, 5, 6, 7, 8, 9, 0]
>>> a[2]=[]
>>> a
[3, 4, [], 6, 7, 8, 9, 0]


☆삭제할때는 del 사용


>>> del a[2]
>>> a
[3, 4, 6, 7, 8, 9, 0]
>>>


02. 리스트 함수


▶ 리스트의 함수는 변수 뒤에 '.'을 붙인 후 사용

→리스트 함수 형식 : 변수.함수()



1) append( x ) -- 리스트의 마지막에 x 요소를 추가


>>>
>>> a=[1,2,3,4,5]
>>> a.append(6)

>>> a
[1, 2, 3, 4, 5, 6]
>>> a.append([7,8])
>>> a
[1, 2, 3, 4, 5, 6, [7, 8]]
>>>


 2) insert( x, y) -- x의 위치에 y 요소를 추가


>>> a
[1, 2, 3, 4, 5, 6, [7, 8]]
>>> a.insert(0,0)
>>> a
[0, 1, 2, 3, 4, 5, 6, [7, 8]]


 ★ 리스트 함수 예제

☆예제 풀이

>>> a=[]
>>> a.append([1,2,3])
>>> a.append(['Lee','Park','Cho'])
>>> a
[[1, 2, 3], ['Lee', 'Park', 'Cho']]
>>> a[0]+[4,5]
[1, 2, 3, 4, 5]
>>> a[0]+=[4,5]
>>> a
[[1, 2, 3, 4, 5], ['Lee', 'Park', 'Cho']]
>>>


3) extend( x ) -- 리스트에 x요소를 추가


→ append 함수와 비슷한 기능

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

>>> a.extend([6,7,8])

>>> a [1, 2, 3, 4, 5, 6, 7, 8]

>>> a += [9,10,11]

>>> a

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]


  ☆error 나는 경우





4) remove ( x ) -- 첫번째로 나오는 x를 삭제

→ x는 자리값이 아닌 해당값

>>>
>>> a=[3,4,5,6,3,4,5,6]
>>> a.remove(5)    --- 첫번째 5삭제
>>> a
[3, 4, 6, 3, 4, 5, 6]
>>> a.remove(5)    --- 두번째 5 삭제
>>> a
[3, 4, 6, 3, 4, 6]
>>> a.remove(5)  -- 5가 없는 상태에서 5를 넣으면 에러가 남
Traceback (most recent call last):
  File "<pyshell#103>", line 1, in <module>
    a.remove(5)
ValueError: list.remove(x): x not in list
>>>


5) pop() -- 마지막의 요소를 표시하고 삭제


>>> a
[3, 4, 6, 3, 4, 6]
>>> a.pop()
6                        --맨 마지막 값이 나옴
>>> a
[3, 4, 6, 3, 4]         --마지막 값 삭제해서 나옴
>>> a.pop()
4
>>> a
[3, 4, 6, 3]
>>>


6) sort()  -- 리스트 요소의 정렬

 

>>> a=[5,3,6,8,7,2,7,9,1]
>>> a.sort()
>>> a
[1, 2, 3, 5, 6, 7, 7, 8, 9]

  

7) reverse() -- 리스트 뒤집기 (역정렬)


>>> a=[5,3,6,8,7,2,7,9,1]
>>> a.reverse()
>>> a
[9, 8, 7, 7, 6, 5, 3, 2, 1]


8) index( x ) -- x 요소의 index를 반환

 (리스트 안 의 특정한 요소의 위치를 얻기 위한 함수)


9) count( x ) -- 리스트의 특정 요소의 개수

 (지칭한 내용이 리스트안에 존재 유무, 몇 개가 있는지 알려줌)


10) len( x) -- 리스트 요소의 개수 반환 (class 함수가 아님 )

  ⑴ 리스트가 몇개를 가지고 있느냐 체크 할 때 사용 용이 

  ⑵ 반복문일 때 주로 쓰임)

  ⑶ index와 1차이가 있음-index는 0부터 시작하기 때문


>>> len(a)
6

>>> a[len(a)]         ---오류남
Traceback (most recent call last):
  File "<pyshell#138>", line 1, in <module>
    a[len(a)]
IndexError: list index out of range
>>> a[len(a)-1]      ---index와 1차이가 나기때문에

6                             -1을 해주어야 오류가 안남

                (index는 0부터 시작하기 때문)

  

☆ 8 ,9 ,10은 주로 조합해서 많이 쓰임


>>> a
[9, 8, 7, 7, 6, 5, 3, 2, 1]
>>> a.index(2)      --- 리스트안에 특정한
7                             요소의 위치를 얻을 수 있음
>>> a=[3,4,5,6,3,4,5,6]
>>> a.count(4)      --리스트안의 4의 갯수를 나타내줌
2
>>> a.remove(4)
>>> a
[3, 5, 6, 3, 4, 5, 6]
>>> a.count(4)
1
>>> a.remove(4)
>>> a
[3, 5, 6, 3, 5, 6]
>>> a.count(4)
0
>>> a
[3, 5, 6, 3, 5, 6]



>>> a=[3,4,5,6,3,4,5,6]
>>> a.index(4)     --- 첫번째 4의 위치를 나타냄
1
>>> a.remove(4)  --- 첫번째 4제거
>>> a
[3, 5, 6, 3, 4, 5, 6]
>>> a.index(4)
4
>>> a.remove(4)   --- 두번째 4 제거
>>> a
[3, 5, 6, 3, 5, 6]

>>> a,remove(4)   --해당 값이 없으면 오류가 남
Traceback (most recent call last):
  File "<pyshell#130>", line 1, in <module>
    a,remove(4)
NameError: name 'remove' is not defined
>>> a.count(4)     --- 해당 값의 유무를 확인 가능
0
>>> len(a)           --- 리스트의 개수 확인  
6
>>>


03. 튜플(tuple)

 

튜플 형식

튜플 명 = (요소 1, 요소 2, 요소 3, ...)

리스트와 유사한 다수의 자료 집합

튜플은 한번 생성이 되면 내부 요소를 변경 할 수 없음

프로그래밍 시 고정되어야 하는 상수를 설정 할 때 주로 쓰임

>>> odd = (1,3,5,7,9)

>>> print(odd)

(1, 3, 5, 7, 9)

>>> del odd[2]  -- 고정된 요소는 변경/삭제 불가

Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

TypeError: 'tuple' object doesn't support item deletion >>


▷  >>> a = ()   <- 비어있는 튜플 생성

     >>> b = (1,) <- 1개의 요소만 있는 경우라도 뒤에 ‘,’ 를 붙여야 함

     >>> f = (1)

>>> type(f)

<class 'int'>         --'int' type 나옴

>>> type(b)

<class 'tuple'>      --'tuple' type 나옴

‘(’ 와 ‘)’ 를 생략 가능





--------
수업 ppt+수업내용 참고


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함