리스트(List)
1. 리스트의 형식
- list_name = [요소1, 요소2, ...]
- 공백 리스트 생성: lst = []
2. 리스트가 가진 매소드
1) insert(): 지정된 위치에 요소 추가
ex) list_name.insert(1,"딩록장") → list_name이란 리스트의 1번방에 "딩록장"이 추가 됨
(원래 1번에 있던 요소는 2번으로 밀려남(뒤로 하나씩 이동))
2) index(): 특정 항목이 리스트의 어디에 있는지 탐색
ex) list_name.index("딩록장") → "딩록장"이 있는 인덱스 번호 출력
3) pop(): 항목이 저장된 위치를 아는 경우에 사용, 해당 요소를 추출함(반환O)
ex) list_name.pop(1) → 1번째 항목을 추출해(삭제) 반환해 줌
list_name.pop() → 리스트의 맨 뒤([-1]) 요소를 추출해 줌
4) remove(): 항목의 값만을 아는 경우에 사용, 지정된 값 삭제(반환X)
ex) list_name.remove("딩록장") → "딩록장" 리스트에서 삭제
5) sort(): 오름차순으로 리스트를 정렬함(↔내림차순: .sort(reverse = True)) ▶ 원본 변경 O
ex) list_name.sort()
6) sorted(): 크기순으로 정렬된 새로운 리스트 반환 ▶ 원본 변경 X
ex) sorted(list_name)
7) copy(): 리스트의 복사본을 반환
ex) lst_name.copy()
3. 리스트가 사용 가능한 내장 함수
1) cmp(): 첫 번째 리스트가 두 번째보다 크면 1 반환
2) all(): 리스트의 모든 요소가 참이면 참을 반환
3) any(): 리스트 안의 한 요소라도 참이면 참을 반환
4. 기타 사용 연산
1) zip() : 두 개 이상의 리스트를 한 번에 제공할 수 있음
ex) for a, in zip(list1, list2):
2) random.choice(): 리스트 안의 항목 랜덤 선택
ex) random.choice(list_name)
5. 리스트 합병과 복제, 비교
1) 리스트 합병: +
ex) lst3 = lst1 + lst2
>> lst1 = [1,2] / lst2 = [3,4]
>> lst3 = [1,2,3,4]
2) 리스트 복제: *
ex) lst = [1,2,3,4] * 2
>> lst = [1,2,3,4,1,2,3,4]
3) 리스트 비교: ==, !=, <, >
6. 리스트 복사
1) 얕은 복사: 리스트 자체가 복사되진 않고 lst1과 lst2가 동일한 리스트를 가르키는 것 → '='
ex) lst1 = lst2 ※ lst2를 바꾸면 lst1도 같이 바뀜(왜냐? 동일한 리스트를 가르키니까)
2) 깊은 복사: 새로운 리스트를 생성하는 것 → list() / [:]
ex) lst1 = [1,2,3,4,5,6]
lst2 = list(lst1) or lst2 = lst[:]
7. 리스트 추가
1) append() 메소드 이용
2) '+=' 연사자 이용
8. 슬라이싱
슬라이싱은 원본 리스트는 변경하지 않고, 새로운 리스트를 생성함
형식: 리스트[start : stop : step]
1) 전체 >> [:]
2) [::n] >>step만큼 건너뛰어서 출력
ex) lst = [1,2,3,4,5,6]
lst[::2] >> [1,3,5]
lst[::-1] >> [6,5,4,3,2,1] ※ 거꾸로 출력
lst[::-2] >> [6,4,2] ※ 거꾸로 2씩 건너뛰어서
3) [:n] >> 양수: n-1까지만 출력 // 음수: -1부터 n까지의 요소를 빼고 출력
ex) [:3] > 0~2까지 출력 / [:-3] -1 ~ -3까지 요소를 뺀 나머지 출력
4) [n:] >> 양수: n 부터 출력 // 음수: -1부터 n까지 출력
ex) [2:] > 2부터 끝까지 출력 / [-2:] > -1 ~ -2까지 출력
5) del lst[-1] >> 마지막 항목 삭제
6) lst[:2] + lst[2:] = lst → 항상 이 식은 성립됨
7)[start:stop] >> 양수: start부터 stop-1까지, 음수: start 부터 stop-1까지(출력순 거꾸로 아님!!)
ex) alist = [10,20,30,40,50] / alist[-3:-1] >> [30,40] (-3 부터 -2까지 요소만 출력됨 [40,30] XXX!!!)
8. 슬라이싱 응용
1) lst[:] = [] >> 리스트의 모든 요소 삭제
2) lst[0:3] = ['딩','록','장'] >> 리스트의 일부 값 변경 → 인덱스 0~2를 '딩','록','장'으로 바꿈
3) lst[1:] = [] >> 첫번째 요소(index 0) 빼고 모두 삭제: → 인덱스 0을 제외한 모든 값 공백처리(삭제)
9. 리스트 함축
형식: 새로운 리스트 = [수식(리스트에 들어갈 값) for 변수 in 리스트 if 조건]
※ 만약 if문의 else 값이 따로 있다면 if문이 for문보다 앞에 온다
(그거 아니면 순차적으로 쓰면 될 듯)
'파이썬' 카테고리의 다른 글
| 파이썬 객체와 클래스 (0) | 2024.05.21 |
|---|---|
| 파이썬 자료구조(tuple, set, dictionary) (0) | 2024.05.19 |