본문 바로가기
Algorithm/자료구조와 함께 배우는 알고리즘(Python)

자료구조와 배열

by k-mozzi 2021. 10. 1.
반응형
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)

 

728x90
반응형

댓글