티스토리 뷰
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 요소를 추가
[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 나옴
▷ ‘(’ 와 ‘)’ 를 생략 가능
'Programing > Python' 카테고리의 다른 글
Python - 06. 조건문 (0) | 2017.03.21 |
---|---|
Python - 05. Dictionary(딕셔너리) . 집합 (0) | 2017.03.20 |
Python - 03. 자료형 . 문자열.문자열 연산 (0) | 2017.03.15 |
Python - 02. 변수.연산자.사칙연산 (0) | 2017.03.15 |
Python - 01. Python. 설치 (0) | 2017.03.14 |