-
[파이썬] 3. 컬렉션 타입의 이해 - 리스트(list)와 튜플 (tuple)파이썬 Python 2019. 11. 18. 01:15
컬렉션 타입이란?
파이썬에서는 다른 언어들처럼 배열이라는 참조 타입이 존재하지 않는다.
대신 컬렉션 데이터 타입이 있다.
컬렉션에는 list, tuple, dictionary, set이 있다.
# 리스트 (list)
- 복수개의 값을 담을 수 있는 데이터 구조.
- 실생활에서 사용하는 리스트 (학생 리스트, 성적 리스트 등등)과 동일한 의미.
- mutable 함 (가변성, 생성된 후에 변경 가능)
리스트의 초기화 방법 세가지
- [] 안에 값을 담아 생성
- list() 함수로 생성
- str.split() 함수로 생성
- 구분자로 구분하여 리스트 반환 (기본적으로는 띄어쓰기를 구분자로 함)
a = [] print(a) #[] b = [1, 3, 5, 7] print(b) #[1, 3, 5, 7] c = ['korea', 'canada', 100, 200, [14, 24]) print(c) #['korea', 'canada', 100, 200, [14, 24])
a = 'hello world' b = list(a) print(b) #['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] c = (1, 2, 3) d = list(c) print(d) #[1, 2, 3]
a = 'hello world nice weather' b = a.split() c = a.split('w') print(b) #['hello', 'world', 'nice', 'weather'] print(c) #['hello ', 'orld nice ', 'eather']
리스트의 indexing과 slicing
- 문자열의 인덱싱, 슬라이싱과 동일하게 동작
- [i] -> i번째 원소를 반환
- 음수 인덱스도 가능
a = [1, 2, 3, 4, 5, 6, 7, 8] print(a[2]) print(a[5]) print(a[-1]) print(a[4:7]) print(a[:7]) print(a[3:]) print(a[:]) print(a[1:7])
리스트 개별 아이템에 접근
- 인덱스에 접근하여 값을 업데이트 가능
a = 'hello world' print(a[0]) #h b = 'jello world' c = 'j' + a[1:] d = a.replace('h', 'j') print(a) #hello world print(b) #jello world print(c) #jello wrold print(d) #jello world
a = [1, 2, 3, 4, 5] a[0] = 100 a[-1] = 90 print(a) #[100, 2, 3, 4, 90]
list 멤버 함수
- 생성된 리스트 객체에 동작하는 함수
- append(): 리스트의 끝에 항복을 추가
- extend(): 리스트를 연장. +=로도 가능
- insert( , ): 원하는 위치에 항목 추가, 앞- 인덱스, 뒤 - 아이템(추가할 항목)
- remove(): 값으로 항목 삭제
- pop(): 인덱스로 지우고자 하는 아이템을 반환 후 삭제
- index(): 찾고자 하는 값의 인덱스 반환
- in 키워드: 리스트 내에 해당 값이 존재하는지 확인하여 true or false 로 반환. value in [list]
- list 정렬
- sort(): 리스트 자체를 내부적으로 정렬
- sorted(): 리스트의 정렬된 복사본을 반환
#list 멤버 함수 a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9] a.append(10) print(a) #[1, 2, 3, 4, 5, 10] a.extend(b) print(a) #[1, 2, 3, 4, 5, 10, 6, 7, 8, 9] ; a += b와 동일하게 작동 a.insert(1, 40) print(a) #[1, 40, 2, 3, 4, 5, 10, 6, 7, 8, 9] a.remove(40) print (a) #[1, 2, 3, 4, 5, 10, 6, 7, 8, 9] d = a.pop(5) print(a) #[1, 2, 3, 4, 5, 6, 7, 8, 9] print(d) #10 a.index(3) #2
#in 키워드 a = [1, 2, 3, 4, 5, 10] b = 10 c = 11 d = b in a e = c in a print(d) #True print(e) #False
#list 정렬 a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8] a.sort(reverse=True) b = sorted(a) print(a) #[21, 20, 19, 10, 9, 8, 7, 7, 2, 1] print(b) #[1, 2, 7, 7, 8, 9, 10, 19, 20, 21]
#Tuple (튜플)
- 리스트와 같이 복수개의 값을 갖는 컬렉션 타입
- 하지만 생성된후 변경 불가능 (immutable)
a = [1, 2, 3] b = (1, 2, 3) print(type(a)) print(type(b)) a[0] = 100 print(a) b[0] = 100 #error print(b)
tuple unpacking
- 튜플의 값을 차례대로 변수에 대입할 수 있음.
- 대입문에서 양 변의 시퀀스 길이가 같아야 함.
a, b, c, d = 100, 200, 300, 400 print(a, b, c, d) #100, 200, 300, 400
반응형'파이썬 Python' 카테고리의 다른 글
[파이썬] 6. 반복문 while / for 의 이해 (feat. break와 continue) (1) 2019.11.25 [파이썬] 5. 조건문 if / elif/ else (0) 2019.11.25 [파이썬] 4. 컬렉션 타입의 이해 - 파이썬 dictionary 와 set (0) 2019.11.18 [파이썬] 2. 문자열 사용방법 (feat. 이스케이프 문자 / index / slicing / 문자열 함수) (0) 2019.11.16 [파이썬] 1. Python 에서 변수와 데이터 타입 (0) 2019.11.09