Preface
이번 장에선 파이썬의 배열 중 하나인 리스트와 튜플에 대해 공부했다.
두 가지 모두 '점프 투 파이썬'을 통해 자주 접하고 사용하여 익숙해진 탓인지 마음 편히 진도를 나갈 수 있었다.
다만 헷갈리는 함수들이 몇몇 있어 다음 장을 시작하기 전 리스트 함수 부분을 복습할 계획이다.
1. 자료구조와 배열
- 원소 : 배열에 저장된 객체
- 파이썬에서의 배열
1) 리스트 : 뮤터블(mutable : 값을 변경할 수 있음)
2) 튜플 : 이뮤터블(immutable : 값을 변경할 수 없음)
→ 리스트에선 마지막 원소에 쉼표를 써도 되고 쓰지 않아도 되지만, 튜플에서 원소가 1개인 경우엔 원소 뒤에 쉼표를 반드시 입력해야 한다.
- 언팩(unpack) : 리스트나 튜플의 원솟값들을 풀어 여러 변수에 대입하는 것
x = [1, 2, 3]
a, b, c = x
print(a, b, c)
- 리스트 슬라이스 방식
1) s[::k] : 리스트 s의 원소 중 맨 앞에서부터 k개씩 건너뛰며 출력
s = [1, 2, 3, 4, 5]
s[::2]
# [1, 3, 5]
2) s[::-1] : 리스트 s의 원소 중 맨 끝부터 전부 출력
s = [1, 2, 3, 4, 5]
s[::-1]
# [5, 4, 3, 2, 1]
- 슬라이스는 인덱스와 달리 범위를 벗어나는 값을 지정해도 오류가 발생하지 않는다.
- 변수에 어떤 값을 대입하면 값 자체가 아니라 식별 번호가 바뀐다.
- 누적변수 : 변숫값에 특정 값을 더한 결괏값을 다시 대입하여 업데이트한 변수
→ n += 1 에서 'n'
- 파이썬 자료형
1) 뮤터블 자료형 : 리스트, 딕셔너리, 집합 등
2) 이뮤터블 자료형 : 수, 문자열, 튜플 등
- 파이썬에서 대입 기호(=)는 연산자가 아니다.
→ x = 17은 식(statement)이 아니라 문(expression)이다.
- 자료구조 : 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계
→ 데이터가 모여 있는 구조
- 등가성과 동일성
1) 등가성(equality) 비교 : 좌변과 우변의 값이 같은지 비교
→ '==' 사용
2) 동일성(identity) 비교 : 값은 물론 객체의 식별 번호까지 같은지 비교
→ 'is' 사용
- append( ) 함수와 extend( ) 함수의 차이
a = [1, 2, 3]
a.append([4, 5])
# [1, 2, 3, [4, 5]]
# 한 가지만 추가 가능하며, 묶어서 출력하면 리스트 그 자체를 포함시킴
a.extend([4, 5])
# [1, 2, 3, 4, 5]
# 한번에 여러 개의 자료 추가 가능
a.clear()
# 전체 원소 삭제
print(a)
# 튜플은 sort() 함수 사용 불가
- 내포 표기 생성 : 리스트 안에서 for, if 문을 사용하여 새로운 리스트를 생성하는 기법
a = [1, 2, 3, 4, 5]
b = [n * 2 for n in a if n % 2 == 1]
print(b)
'Algorithm > 자료구조와 함께 배우는 알고리즘(Python)' 카테고리의 다른 글
검색 알고리즘과 선형 검색 (0) | 2021.10.04 |
---|---|
배열이란? (0) | 2021.10.02 |
반복하는 알고리즘 (0) | 2021.09.29 |
알고리즘이란? (0) | 2021.09.28 |
자료구조와 함께 배우는 알고리즘 출처 (0) | 2021.09.27 |
댓글