자료구조를 수강했다. 자료구조에서는 리스트, 튜플, 딕셔너리를 배웠고, 각 자료구조마다 존재하는 함수도 있지만 슬라이싱, 정렬 등은 비슷하게 작용했다. 다만 딕셔너리는 인덱스가 아니라 키로 값들을 구분하는 것을 유의해야 했다.
리스트
- 배열과 같이 여러 개의 데이터를 나열한 자료구조
[]로 선언하고, 데이터 구분은 ,를 이용한다
숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다
리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수 있다
인덱스
- 아이템에 자동으로 부여되는 번호표
리스트 아이템은 인덱스를 이용해 조회가 가능하다
- 변수명[인덱스번호]를 이용해 아이템에 접근 가능하다
리스트 길이
- 리스트 저장된 아이템 갯수
- len(리스트변수)
레퍼런스 변수
- 메모리 주소를 가지고 멀리 있는 리스트 값을 참조하는 것
- 리스트의 레퍼런스 변수: 리스트를 선언할 때 사용한 변수명
for문의 range(len(리스트변수))를 활용하면 리스트의 아이템 조회가 쉽다
- for item in range(lists)
for문에 리스트변수를 활용하면 리스트 아이템 조회가 쉽다
- for item in lists
len(변수)
- 변수가 문자열일 경우, 문자열 길이도 알 수 있다
for문을 활용한 리스트 아이템 참조하기
- for 지역변수 in range(len(리스트변수명)):
- 리스트변수 내부 아이템의 인덱스를 참조하는 방법
- for 지역변수 in 리스트변수명:
- 리스트변수 내부 아이템을 직접적으로 참조하는 방법
- 리스트 내부에 리스트가 또 있는 경우
- for 지역변수1, 지역변수2 in 리스트변수명:
- 지역변수1은 리스트내부의 첫 번째 요소를, 지역변수2는 리스트내부의 두 번째 요소를 가리킨다
- 조건문을 함께 활용할 경우
for 지역변수 in 리스트변수명:
if 조건문: continue # 조건에 해당하면 아래를 수행하지 않고 다음 단계의 for문을 수행한다
수행문 # 조건에 해당하지 않을 경우 수행하는 문구
while문을 활용한 리스트 아이템 참조하기
- 조건을 횟수로 제한하고, 반복문 말미에 횟수 변수에 1을 더하는 방법
- boolean값을 가진 flag변수를 활용하여 반복문 말미에 횟수 변수에 1을 더하고, 횟수 변수가 어느 값인 경우 flag에 false를 주는 방법
- True 조건문을 활용하여 반복문 말미에 횟수 변수에 1을 더하고, 횟수 변수가 어느 값인 경우 break를 주는 방법
enumerate()함수
- 인덱스와 아이템을 한 번에 조회하는 함수
- for idx, value in enumerate(리스트변수명):
- 인덱스변수, 값변수 순서로 배정된다
- 리스트변수 뿐 아니라, 문자열로도 활용이 된다
리스트변수명.append(새로운값)
리스트변수명.insert(특정인덱스, 새로운값)
리스트변수명.pop()
리스트변수명.pop(특정인덱스)
리스트변수명.remove(아이템)
while 아이템 in 리스트변수명:
리스트변수명.remove(아이템)
리스트 연결하기
- extend() 함수
- 리스트변수명1.extend(리스트변수명2)
- 리스트변수명1에 리스트변수명2를 추가한다.
- 덧셈 연산자 활용
- 리스트변수명1 + 리스트변수명2
- 리스트변수명1과 리스트변수명2가 이어진 새로운 변수가 만들어진다.
리스트 정렬하기
- sort() 함수
- 오름차순으로 정렬한다
- sort(reverse = True)
- 내림차순으로 정렬
- reverse() 함수
- 주어진 순서를 뒤집는다
- 변수명.reverse()
리스트 슬라이싱
- [n:m:s]
- n에서 부터 m-1까지 s칸씩
- 숫자가 없을 경우 n자리는 맨 처음부터, m자리는 맨 끝까지, s는 1이 디폴트
- 숫자가 음수일 경우 뒤쪽에서부터 계산, 이때 -1이 맨 끝자리
- 문자열 슬라이싱
- 리스트 슬라이싱과 동일
- 슬라이싱을 이용해 아이템 변경도 가능
- slice() 함수
- 변수명[slice(n, m)]
리스트 곱셈 연산
- 아이템이 반복된다
리스트 아이템 위치 찾기
- index() 함수
- 변수명.index(값, n, m)
- 만약 변수 내부에 값이 복수개 존재할 경우 맨 앞의 하나만 반환한다
- n에서 m까지의 범위 내에서 주어진 값의 인덱스를 찾는다. 생략시 처음부터 끝까지가 디폴트
리스트에서 특정 아이템 갯수 알아내기
- count() 함수
- 변수명.count(값)
특정 아이템 삭제
- del 변수명[n]
- n자리에 인덱스, 슬라이싱 적용 가능
random 패키지에 sample 함수 활용
- random.sample(범위, 갯수)
- 리스트로 반환
튜플
- 리스트와 비슷하지만 아이템 변경(수정, 삭제)이 불가능
- () 이용해 선언하고, ,를 이용해 구분한다
- 아이템이 한 개일 경우 아이템 뒤에 콤마를 추가하면 튜플로 선언이 가능
- (아이템, )
- 소괄호 없이 아이템을 , 이용해 나열해도 튜플로 선언됨
- 숫자, 문자(열), 논리형 등을 같이 저장할 수 있음
- 튜플 내 또 다른 컨테이너 자료형 데이터 저장이 가능하다
- 튜플과 리스트는 서로 변환이 가능하다
- tuple() 함수
- tuple(변수명)
- list() 함수
- list(변수명)
튜플 아이템 조회
- 인덱스를 활용한 슬라이싱을 이용
특정 아이템 존재 유/무
- in, not in 키워드 활용
- 값 in 변수명
- 변수내에 값과 동일한 아이템이 있으면 True
- 값 not in 변수명
- 변수내에 값과 동일한 아이템이 없으면 True
- 문자열에도 활용 가능
튜플 길이
- len(튜플변수명)
튜플 결합
- + 연산자를 이용해 두 튜플을 결합해 새로운 튜플을 선언할 수 있다
- 리스트의 extend() 함수 사용 불가능
튜플 슬라이싱
- 리스트와 동일한 방식으로 슬라이싱 가능
- 슬라이싱 이용한 데이터 변경은 불가능
- 다만 리스트를 슬라이싱 이용해 튜플의 아이템으로 변경할 수 있고, 결과는 여전히 리스트이다.
- slice() 함수 활용 가능
튜플 아이템 정렬
- 튜플을 리스트로 변환 후, sort() 함수를 활용해 정렬, tuple() 함수를 이용해 재변환
- sorted() 함수
- sorted(변수명)
- 원본 자료는 그대로, 새롭게 리스트 자료형을 반환
- key, reverse 옵션은 sort() 함수와 동일
튜플과 for문
- 리스트와 동일한 방법 활용
튜플과 while문
- 리스트와 동일한 방법 활용
딕셔너리
- key와 value를 이용해 자료를 관리
- key
- 중복X
- 리스트, 튜플의 index와 비슷한 역할, 내가 부여하는 값
- immutable값만 올 수 있다.(변경 불가능한)
- ex) tuple
- {}을 이용해 선언하고, : 이용해 key와 value를 연결하고, ,를 이용해 아이템 나열
- {key : value, ...}
- 숫자, 문자(열), 논리형, 컨테이너 자료형도 올 수 있다
딕셔너리 조회
- 변수명[key]
를 활용해 value를 조회한다
- 없는 key를 넣으면 Error 발생
- 변수명.get(key)
를 활용해 value를 조회한다
- 없는 key를 넣으면 None을 반환한다
- 전체값 조회
- keys() 함수
- 변수명.keys()
- 타입: dict_keys
- 리스트 형태로 반환
- values() 함수
- 변수명.values()
- 타입: dict_values
- 리스트 형태로 반환
- items() 함수
- 변수명.items()
- 타입: dict_items
- tuple 형태로 저장되어 있음
딕셔너리 추가
- 변수명[key] = value
형태로 아이템을 추가
- 이미 존재하는 key일 경우 value값이 수정됨
딕셔너리 수정
- 변수명[존재하는 key] = 새로운 값
딕셔너리 삭제
- del 변수명[key]
- 변수명.pop(key)
- 삭제된 값이 반환된다
딕셔너리
- in, not in 키워드
- key 존재 유무를 판단
- len() 함수
- clear()
- 모든 아이템을 삭제
- 아이템 갯수가 0인 dict만 남는다
+ 추후에 추가
이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.