티스토리 뷰

728x90

수 자료형

<실수형>

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() 특정한 값을 제거합니다.

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함