출처
동빈나 이코테
참고하면 좋은 포스트
파이썬 코딩테스트 요구사항 분석
Python 자료형 - 정수, 실수, 복소수, 문자열, 리스트, 튜플, 사전
양의 정수, 음의 정수, 0
소수점 아래 데이터 포함
소수부나 정수부가 0인 소수는 0을 생략하고 표기 가능
a = 5.
# 5.0
a = -.7
# -0.7
1e9 = 10⁹ = 1,000,000,000
a = 1e9
# 1000000000.0
a = 12.34e1
# 123.4
a = 5678e-3
5.678
a = int(1e9)
# 1000000000
2진수로 소수점 표현 한계
a = 0.3
b = 0.6
a + b == 0.9
# 0.899999999999999
# False
round(실수, 표현할 최대 소수점 자리)
round(123.456, 2)
# 123.46
나누기 연산자는 결과를 실수형으로 반환
a = 7
b = 3
print(a / b)
# 2.333333333333333333335
%
나머지//
몫a = 7
b = 3
print(a % b)
# 1
print(a // b)
# 2
**
a = 5
b = 3
print(a ** b)
# 125
print(a ** 0.5)
# 2.3606797749979
a = [1, 2, 3, 4]
# [1, 2, 3, 4]
b = [0] * 10
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
b = list()
c = []
음의 정수로 거꾸로 인덱싱 가능
a = [1, 2, 3, 4]
print(a[-1])
# 4
시작 인덱스부터 끝 인덱스 전까지
a = [1, 2, 3, 4]
print(a[1:3])
# [2, 3]
대활호 안에 조건문이나 반복문 작성
array = [i for i in range(10)]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
array = [i for i in range(20) if i % 2 == 1]
# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
array = [i * i for i in range(1, 10)]
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
a = [1, 2, 3, 4, 5]
remove_set = {3, 5} # 집합 자료형
result = [i for i in a if i not in remove_set]
print(result)
# [1, 2, 4]
# 리스트 컴프리헨션
array = [i for i in range(20) if i % 2 == 1]
# 일반적인 코드
array = []
for i in range(20):
if (i % 2) == 1:
array.append(i)
n = 4
m = 3
array = [[0] * m for _ in range(n)]
가로 m 세로 n
각 리스트가 모두 같은 객체로 인식되어 특정 인덱스번째 리스트에 접근 불가
n = 4
m = 3
array = [[0] * m] * n
array[1][1] = 5
# [[0, 5, 0], [0, 5, 0], [0, 5, 0], [0, 5, 0]]
변수 값 무시할 때 사용
for _ in range(5):
print('hi')
# hihihihihi
함수 | 사용법 | 설명 | 시간복잡도 |
---|---|---|---|
append() | 변수명.append() | 리스트에 원소 하나 삽입 | O(1) |
sort() | 변수명.sort() | 기본 정렬(오름차순) | O(NlogN) |
변수명.sort(reverse = True) | 내림차순 정렬 | ||
reverse() | 변수명.reverse() | 원소 순서 뒤집기 | O(N) |
insert() | 변수명.insert(인덱스, 값) | 인덱스 위치에 값을 삽입 | O(N) |
count() | 변수명.count(값) | 특정 값을 가지는 데이터 개수 세기 | O(N) |
remove() | 변수명.remove(값) | 특정한 값을 갖는 원소 제거. 여러개면 하나만 제거 | O(N) |
"
나 '
로 초기화"
로 문자열 구성시 내부에 '
포함 가능'
로 문자열 구성시 내부에 "
포함 가능\
로 원하는 만큼의 "
와 '
포함 가능data = "Don't you know \"Python\"?"
print(data)
# Don't you know "Python"?
문자열이 더해져 연결(Concatenate)됨
a = "Hello"
b = "World"
print(a + " " + b)
# Hello World
양의 정수와 곱셈시 그 값만큼 여러번 더해짐
a = "String"
print(a * 3)
# StringStringString
a = "ABCDEF"
print(a[2:4])
CD
[]
튜플은 소괄호()
a = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(a[3])
# 4
print(a[1:4])
# (2, 3, 4)
리스트보다 효율적으로 메로리를 사용할 경우
변경 불가능한 자료형을 키로 사용 가능
# 방법1
data1 = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
# 방법2
data2 = {
'사과': 'Apple',
'바나나': 'Banana',
'코코넛': 'Coconut'
}
print(data1)
# {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
print(data2)
# {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
print(data)
# {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
if '사과' in data:
print("'사과'"를 키로 가지는 데이타가 존재합니다.")
# '사과'"를 키로 가지는 데이타가 존재합니다.
키/값 데이타만 뽑아서 리스트로 사용가능
print(data)
# {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}
key_list = data.keys()
print(key_list)
# dict_keys(['사과', '바나나', '코코넛'])
value_list = data.values()
print(value_list)
# dict_values(['Apple', 'Banana', 'Coconut'])
객체가 아닌 리스트형으로 변환
key_list = list(dict.keys())
print(key_list)
# ['Apple', 'Banana', 'Coconut']
for key in key_list:
print(data[key])
# Apple
# Banana
# Coconut
# 방법1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data)
# {1, 2, 3, 4, 5}
# 방법2
data = {1, 1, 2, 3, 4, 4, 5}
print(data)
# {1, 2, 3, 4, 5}
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
# 합집합 (A ⋃ B)
print(a|b)
# {1, 2, 3, 4, 5, 6, 7}
# 교집합 (A ⋂ B)
print(a&b)
# {3, 4, 5}
# 차집합 (A - B)
print(a - b)
# {1, 2}
data = set([1, 2, 3])
print(data)
# {1, 2, 3}
data.add(4)
print(data)
# {1, 2, 3, 4}
data.update([5, 6])
print(data)
# {1, 2, 3, 4, 5, 6}
data.remove(3)
print(data)
# {1, 2, 4, 5, 6}