일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 24시간의 전사
- 포렌식
- N0Named
- ZIP 파일구조
- 생활코딩
- slack space
- 슬퍼유
- ftz
- vinetto
- 실기
- Multimeida
- network
- 윈도우 프로세스
- CTF-D
- html
- 생활코딩 html
- disk
- 디지털포렌식
- blkls
- 네트워크 보안
- 2022시작
- 윈도우 프로세스 종류
- memory
- pythonchallenge
- 정보처리기사 필기 합격
- 는 하지마...
- Multimedia
- Window process
- 네트워크관리사2급
- 디지털포렌식 with CTF
- Today
- Total
ssoL2 TISTORY
[기초 PYTHON 프로그래밍] 10강. 리스트, 튜플 본문
- 리스트(list)는 대괄호 []를 사용하여 여러 데이터를 저장할 수 있는 자료형
- 순서가 있고, 인덱스를 이용하여 데이터 접근 가능, 무엇보다 리스트는 mutable 하다
- 리스트는 mutable하기 때문에 수정이 가능하다
ex) score[2] = 78 ; print(score) #[80, 90, 78, 88 ,92] 출력
- 슬라이싱(slicing)
- 리스트(list)는 + (연결) 과 * (반복) 에 대한 연산이 가능하다.
ex) L = [1,3,5] ; M = [2,4]
>>> L + M # <대화형 모드>에서 [1,3,5,2,4] 출력
print(L,M) # [1,3,5] [2,4] 출력
# L + M시 L과 M은 절대로 변하지 않고 두 리스트를 연결한 새로운 리스트만 반환하는 것이다.
>>> L * 3 # <대화형 모드>에서 [1,3,5,1,3,5,1,3,5] 출력
- 리스트(list)는 in, not in, len() 도 가능하다.
이는 앞서 배운 문자열 때와 개념은 동일
- 메소드(method) : 데이터 객체에 대해서 어떤 일을 처리할 수 있도록 하는 코드
- 리스트에서 사용할 수 있는 메소드
dir(list) list에서 사용가능한 메소드 나열 반드시 list.method 형태로 사용해야 한다. |
- 리스트.메소드 1 : 리스트에 데이터 추가하기
list.append(x) 데이터 x를 리스트 끝에 추가한다. list.insert(i,x) 인덱스 i에 데이터 x를 삽입한다. |
ex) L = [1,4,7,8]
L.append(5)
print(L) # [1,4,7,8,5] 출력 (데이터 5를 리스트 끝에 삽입)
L.insert(2,10)
print(L) # [1,4,10,7,8,5] 출력 (2번째 index에 데이터 10 삽입)
- 리스트.메소드 2 : 리스트에서 데이터 삭제하기
list.pop() 리스트 맨 마지막 데이터를 반환하고 삭제 list.pop(i) 리스트에서 인덱스 i에 있는 데이터를 반환하고 삭제 list.remove(x) 리스트에서 데이터 x를 삭제하는데, x가 여러개이면 맨 처음 x를 삭제 |
ex) L = [1,2,3,4,5]
>>> L.pop() # 5 출력 (리스트 맨 마지막 데이터 5 반환 후 삭제)
print(L) # [1,2,3,4] 출력
>>> L.pop(2) # 3 출력 (리스트 2번째 index인 데이터 3 반환 후 삭제)
print(L) # [1,2,4] 출력
L.remove(2)
print(L) # [1,4] 출력
- 리스트.메소드 3 : 리스트에서 데이터 위치 찾기 / 데이터 개수 세기
list.index(x) 리스트에서 데이터 x의 인덱스 반환 (물론, x가 여러개이면 맨 처음 인덱스 반환) list.count(x) 리스트에서 데이터 x의 개수 반환 |
ex) L = ['g', 'a', 'c', 'f', 'g', 'b']
>>> L.index('f') # 3 출력
>>> L.count('b') # 1 출력
- 리스트.메소드 4 : 빈 리스트와 리스트 비우기
list = [] 빈 리스트 생성 list.clear() 리스트를 비운다. |
ex) A = []
A.append('red')
print(A) # [red] 출력
A.clear()
print(A) # [] 출력
- 리스트.메소드 5 : 리스트 복사하기 ('='을 이용하는 방법과 copy() 메소드)
1. '='을 이용하는 방법
ex) L = [1,3,5,7,9]
>>> id(L) # <대화형 모드>에서 53794056 출력
M = L
M[2] = 100
print(L) # [1,3,100,7,9] 출력
print(M) # [1,3,100,7,9] 출력
>>> id(M) # <대화형 모드>에서 53794056 출력
list B = [1,2,3] listA = listB 새 리스트 listA가 lisB의 같은 객체를 가리킨다. |
- 결국 리스트 복사 방법 중 '='으로 사용하는 것은 같은 객체를 가리키는 새 리스트 생성 의미
2. copy()
ex) L = [1,3,5,7,9]
>>> id(L) # <대화형 모드>에서 53794216 출력
N = L.copy()
N[2] = 100
print(L) # [1,3,5,7,9] 출력
print(M) # [1,3,100,7,9] 출력
>>> id(M) # <대화형 모드>에서 2324360 출력
listB = [1,2,3] listA = listB.copy() 새 리스트 listA가 새로운 객체를 가리킨다. |
- 리스트.메소드 6 : 리스트 연결하기
list.extend(M) M이라는 리스트를 list 뒤에 이어서 연결한다. 따라서 list는 변하게 된다. |
ex) L = [1,3,5]
M = [10,20]
L.extend(M)
print(L) # [1,3,5,10,20] 출력
print(M) # [10,20] 출력
- 리스트.메소드 7 : 리스트 정렬하기
list.sort() 리스트 오름차순으로 정렬 list.sort(reverse=True) 리스트 내림차순으로 정렬 |
ex) L = [3,5,1,4,2]
L.sort()
print(L) # [1,2,3,4,5] 출력
L = [3,5,1,4,2]
L.sort(reverse=True)
print(L) # [5,4,3,2,1] 출력
- 리스트.메소드 8 : 리스트 역순으로 바꾸기
reverse() 리스트 현재 순서를 역순으로 바꾸기 |
ex) L = [3,5,1,4,2]
L.reverse()
print(L) # [2,4,1,5,3] 출력
- 튜플(tuple) : 리스트처럼 여러 데이터를 저장할 수 있는 자료형
- 리스트와 마찬가지로 인덱싱, 슬라이싱 이용 가능하며, (+), (*), in, not in, len() 사용 가능
- 리스트와의 차이점은 []대신에 ()를 사용 + 튜플은 immutable 하다.
- 튜플(tuple)의 메소드
tuple.index() 튜플에서 데이터 x의 인덱스 반환 tuple.count() 튜플에서 데이터 x의 개수 반환 |
- 빈 튜플
T = () T = tuple() 빈 튜플 생성 |
- 원소가 하나인 튜플 생성
T = (1, ) S = (1) #Type이 int로 인식된다. 콤마를 반드시 적어야 tuple로 인식 D = 20, 반드시 콤마가 필요하다. A = 1,2,3 B = (4,5,6) 괄호를 치든 안치든 여러개를 나열하면 튜플로 인식된다. |
- 튜플은 여러 변수에 값 동시에 할당 할 수 있도록 해준다
ex) a,b,c = 1,2,3 or (a,b,c) = (1,2,3) 는 a = 1 ; b = 2 ; c = 3 과 같다
- 튜플을 이용한 swap
- 특히 튜플은 함수에서 유용하게 사용됨
- 튜플은 immutable하므로 프로그램 수행 동안 변경하지 않아야 하는 데이터는 튜플로 저장하자.
'com > python' 카테고리의 다른 글
[기초 PYTHON 프로그래밍] 12강. for 반복문 (0) | 2020.12.25 |
---|---|
[기초 PYTHON 프로그래밍] 11강. 집합, 사전 (0) | 2020.12.25 |
[기초 PYTHON 프로그래밍] 9강. 실습2 (0) | 2020.12.24 |
[기초 PYTHON 프로그래밍] 8강. while 반복문 (0) | 2020.12.24 |
[기초 PYTHON 프로그래밍] 7강. if 조건문 (0) | 2020.12.24 |