티스토리 뷰
파이썬은 4가지의 built-in 데이터 구조를 가진다.
자세한 내용은 Data Structures에서 확인할 수 있다.
dictionary
키와 값 쌍으로 구성된 가변(mutable) 데이터들의 집합이다.
중괄호 { }
를 사용해서 정의한다.
- 키는 유일해야하며 키를 통해 값에 접근할 수 있다.
- mutable 하기 때문에 키와 값을 추가, 변경, 삭제할 수 있다.
- 3.7부터 순서가 보장된다.
my_dic = {'name': 'Alice', 'age':30}
my_dic['age'] = 28 # 값을 수정한다.
my_dic['job'] = 'Engineer' # 요소 추가한다.
my_dic.pop('name') # 요소 삭제
del my_dic['age'] # 요소 삭제
list
순서가 있는 가변(mutable) 데이터들의 집합이다.
대괄호 [ ]
를 사용해서 정의한다.
- 인덱스를 통해 요소에 접근할 수 있다.
- mutable 하기 때문에 요소를 변경, 추가, 삭제할 수 있다.
- 다양한 데이터 타입을 포함할 수 있다.
- 슬라이싱(slicing)으로 데이터 구간 추출할 수 있다.
numbers = [1, 2, 3]
numbers[0] = 9 # 0번 인덱스 값 변경한다.
numbers.append(4) # 리스트 마지막에 추가한다.
numbers += [5, 6] # 리스트에 여러개의 값을 추가한다.
numbers.insert(0, 0) # 0번 인덱스에 값을 넣는다.
numbers.pop() # 마지막 값을 제거한다.
# 마지막 요소를 가져온다.
# 파이썬에서는 마지막 인덱스에 대해 -1 로 작성할 수 있다.
# 마지막 값 = -1, 마지막 값에서부터 요소 접근할 때 -n 식으로 작성할 수 있다.
numbers[len(numbers) -1]
numbers[-1]
set
순서가 없고 유일한 데이터들의 집합이다.
중괄호 { }
를 사용해서 정의한다.
- 중복된 요소를 허용하지 않으며, 자동으로 중복이 제거된다.
- mutable 하기 때문에 요소를 추가하거나 제거할 수 있다.
- 순서가 없기 때문에 인덱스를 통한 접근이 불가능하다.
- 집합 연산을 할 수 있다.
numbers = {1, 2, 3}
numbers.add(4)
numbers.remove(1)
# 집합 생성
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 교집합
print(set1 & set2) # {3, 4}
# 합집합
print(set1 | set2) # {1, 2, 3, 4, 5, 6}
# 차집합
print(set1 - set2) # {1, 2}
# 대칭차집합
print(set1 ^ set2) # {1, 2, 5, 6}
tuple
순서가 있는 불변(immutable) 데이터들의 집합이다.
괄호 ( )
를 사용해서 정의한다.
- 인덱스를 통해 요소에 접근할 수 있다.
- 리스트에 비해 상대적으로 공간 효율적이다.
- immutable 하기 때문에 요소를 변경할 수 없다.
- 슬라이싱(slicing)으로 데이터 구간 추출할 수 있다.
numbers = (1, 2, 3)
numbers[0] # 0번 인덱스 값을 가져온다.
위에서 언급되었던 슬라이싱(slicing)이란 무엇일까 ?
슬라이싱(slicing)은 리스트, 튜플, 문자열 등의 시퀀스 데이터 타입에서 부분 구간을 추출할 때 사용하는 방법이다.
문법sequence[start:end:step]
- start : 슬라이스를 시작할 인덱스(포함)로, 기본값은 0이다.
- stop : 슬라이스를 끝낼 인덱스(제외)로, 기본값은 시퀀스의 끝이다.
- step : 슬라이스의 단계로 기본값은 1이다.
리스트 예시
numbers = [0, 1, 2, 3, 4]
# [1, 2, 3]
print(numbers[1:4])
# [2, 3, 4]
print(numbers[2:])
# [0, 2, 4]
print(numbers[::2])
# [4, 3, 2]
print(numbers[-1:-4:-1])
# [0, 1, 2, 3, 4]
print(numbers[:])
'Language > Python' 카테고리의 다른 글
[Python] Parameter Type (1) | 2024.09.08 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HashMap
- spring boot
- 다중화
- Security
- 추상클래스
- 인터페이스
- Spring
- fail-fast
- 인스턴스변수
- 자동구성
- 티스토리챌린지
- JPA
- Load Balancer
- 오블완
- 정적변수
- 로드 밸런서
- Hash
- object
- nosql
- fail-safe
- Red-Black Tree
- java
- 고정 세션
- syncronized
- Sticky Session
- HashSet
- AutoConfiguration
- nginx
- @conditional
- Caching
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함