티스토리 뷰
수 자료형
<실수형>
1. e를 이용하여 지수를 표현할 수 있습니다.
a = 1e9
b = 75.25e1
print(a,b)
#출력 : 1000000000.0 752.5
최단 경로 문제에서 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)로 설정하곤 하는데,
최댓값이 10억 미만일 때 일일이 10억을 변수에 대입하기 보단 1e9로 표현하는 것이 효과적입니다.
2.round()
10진수 에서는 0.3+0.6 = 0.9 라고 정확히 떨어지지만 2진수에서는 0.9에 가까운 값을 표현할 수 있을 뿐 정확한 값을 표현할 수 없습니다.
이에 따라 소수점 값을 비교하는 작업에서 원하는 결과를 얻지 못할 수도 있습니다.
이때 round()함수를 사용합니다.
a = 0.3 + 0.6
if a== 0.9 :
print(True)
else :
print(False)
a = 0.3 + 0.6
a = round(a,4) #a를 소수점 다섯 번째 자리에서 반올림
if a == 0.9 :
print(True)
else :
print(False)
#출력 : Fasle
# True
3. 나누기 연산자(/)는 결과를 기본적으로 실수형으로 처리합니다.
리스트 자료형
1. 크기가 N인 1차원 리스트 0으로 초기화하기
n = 10
a = [0] * n
print(a)
#출력 : [0,0,0,0,0,0,0,0,0,0]
2. 인덱싱 , 슬라이싱 지원
인덱싱 : 리스트의 특정한 원소에 접근하는 것
+)인덱스 값으로 양의 정수뿐만 아니라 음의 정수도 사용 가능합니다.
음의 정수를 넣으면 원소를 거꾸로 탐색합니다.
슬라이싱 : 연속적인 위치를 갖는 원소들을 가져오는 것
+) 인덱스 값이 0부터 시작한다는 점, (끝 인덱스 -1)까지 설정해야 한다는 점을 기억해야 합니다.
3. 리스트 컴프리헨션
리스트를 초기화하는 방법 중에 하나로 코드를 간단히 할 수 있어 간편합니다.
대괄호 안에 조건문/반복문을 넣는 방식으로 리스트를 초기화할 수 있습니다.
a = [i for i in range(10) if i % 2 == 1]
print(a)
#출력 : [1,3,5,7,9]
(0~10까지의 수 중 홀수만을 포함하는 리스트)
2차원 리스트를 초기화할 때 매우 효과적으로 사용할 수 있습니다.
n = 3
m = 4
arr = [[0] * m for _ in range(n)]
print(arr)
#출력 : [[0,0,0,0],[0,0,0,0],[0,0,0,0]]
특정 크기의 2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션을 이용해야 합니다.
+) 언더바(_)를 사용한 반복문?
반복을 위한 변수의 값을 무시(사용하지 않을 때) 언더바를 자주 사용합니다.
ex) 단순 출력반복
4. 그외 메소드
append() | 리스트에 원소 삽입합니다. |
sort() | 오름차순으로 정렬합니다. |
reverse() | 원소의 순서를 뒤집어 놓습니다. |
insert() | 특정한 위치에 원소를 삽입합니다. |
count() | 특정 값을 가지는 데이터 개수를 셉니다. |
remove() | 특정한 값을 갖는 원소를 제거합니다. 원소가 여러개일 때 하나만 제거합니다. |
append()는 맨 뒤에 추가하는 메소드기 때문에 시간 복잡도가 O(1)입니다.
하지만 insert()와 remove()의 경우 특정 위치에 삽입/삭제 후 남은 원소들의 위치를 재배열 해야 하기 때문에
시간 복잡도가 O(N)임을 주의해야 합니다.
+) 특정한 값의 원소를 모두 제거하는 방법
a = [1,2,3,4,5,5]
remove_set = {3,5}
result = [i for i in a if not in remove_set]
print(result)
#출력 : [1,2,4]
그 외 자료형
<문자열>
파이썬에서는 문자열도 리스트처럼 인덱싱/슬라이싱을 이용할 수 있습니다.
<튜플>
튜플 자료형은 그래프 알고리즘을 구현할 때 자주 사용합니다.
ex)다익스트라 최단경로 알고리즘 => 우선순위 큐(한 번 들어간 값은 변경되지 않음) 사용 => 튜플 이용
+)각 원소의 성질이 서로 다를 때도 주로 튜플을 사용합니다. (비용,노드 번호)의 형태로 튜플로 묶어서 관리합니다.
<사전>
1. 변경 불가능한 데이터를 키로 사용할 수도 있습니다.(ex. 수/문자열/튜플 자료형)
2. 내부적으로 해시 테이블을 이용하므로 데이터 검색/수정 시간 복잡도는 O(1)입니다.
따라서 리스트보다 훨씬 빠르게 데이터를 처리할 수 있습니다.
3. 함수
keys() | 키 데이터만 뽑아서 리스트로 이용합니다. |
values() | 값 데이터만 뽑아서 리스트로 이용합니다. |
key_list = data.keys()
for key in key_list:
print(data[key])
#키에 따른 값을 하나씩 출력
<집합>
1. 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없고 값 데이터만을 담습니다.
2.특정한 데이터가 이미 등장한 적이 있는지 여부를 체크할 때 효과적으로 사용할 수 있습니다.
3. 함수
add() | 하나의 값을 집합에 추가합니다. |
update() | 여러개의 값을 한꺼번에 추가합니다. |
remove() | 특정한 값을 제거합니다. |
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 파이썬 기초 문법 - 표준 라이브러리 (0) | 2021.09.02 |
---|
- Total
- Today
- Yesterday
- JS
- IT
- Python
- 코테
- 백준
- 신장트리
- 코딩테스트
- 깃허브
- 코딩
- 홍대
- react
- 리액트
- CSS
- 알고리즘
- JavaScript
- BOJ
- github
- 크루스칼
- 멋쟁이사자처럼
- 컴공
- 이것이 코딩테스트다
- 인프런
- HTML
- 홍익대
- 개발자
- 백엔드
- 이것이코딩테스트다
- 멋사
- 골드5
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |