코딩테스트 문제를 풀기 전 Python의 문법을 정리하고 문제를 풀 때 참고해가면서 풀며 익숙해지기 위해 정리해 놓기로 했다.
v = 1. #소수 부분이 0일 때 생략
v = 0.2 + 0.8 # 0.8999999999999999
round(123.456, 0) # 123.0 소수점 첫째 자리에서 반올림
round(123.456, 4) # 소수 5째자리에서 반올림 (4째자리까지 살림)
round(123.456, -3) # 0.0 소수점 좌측 3번째에서반올림
v = 1e6 # 10^6 = 1000000, (비트 연산 XOR과 구분)
#수 자료형의 연산 (헷갈리는 것만)
// #몫 연산; 소수점이 나오지 않는 몫 연산
** #거듭제곱 연산
list_a = [1, 2, 3, 4, 5] #리스트 초기화
#리스트 인덱싱 : 인덱스 값으로 리스트의 특정 원소에 접근하는 것
list_a[4] #5번째 원소 접근
list_a[-1] #뒤에서 첫 번째 원소 접근
#빈 리스트 만들기
list_b = []
list_b = list()
#배열의 원소를 모두 같은 값으로 초기화 하기
list_c = ['a'] * 5 #['a', 'a', 'a', 'a', 'a']
리스트 슬라이스는 반 닫힌 구간을 표시한다.
list_a[1:4]

[] 안에 들어갈 값, 반복문, 조건문을 넣어 리스트를 초기화 할수 있다.
list_c = [원소 값을 뭘로 줄까 for x in range(반복횟수) if 조건]
사용 예: 홀수/ 짝수 리스트 생성
#리스트 컴프리헨션 적용 전
N = 21
odd_list = list()
even_list = []
for x in range(N):
if x % 2 == 1:
odd_list.append(x)
else:
even_list.append(x)
#리스트 컴프리헨션 적용 후
odd_list = [x for x in range(N) if x%2 == 1]
even_list =[x for x in range(N) if x%2 == 0]
조건문을 생략할 수도 있다.
다차원 리스트를 초기화 할 때 리스트 컴프리헨션이 자주 사용된다.
dimensional_list = [[[0 for col in range(3)] for row in range(4)] for depth in range(2)]
#열, 행, 면.... 순서대로
2x4x3 (면x행x열)
[
[
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
],
[
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
]
list_a = [1,2,4,5]
#원소 추가
list_a.append(5) # [1, 2, 4, 5, 5]
#원소 삽입
list_a.insert(3, 3) # 3번 '인덱스'앞에 원소 3 삽입 [1, 2, 4, 3, 5, 5]
list_a.insert(2, 5) # [1, 2, 5, 4, 3, 5, 5]
#특정 값을 가지는 원소 만나면 삭제
list_a.remove(5) # [1, 2, 4, 3, 5, 5]
#특정 값을 가지는 데이터 개수
list_a.count(5) # 2
#오름차순 정렬
list_a.sort() # [1, 2, 3, 4, 5, 5]
# 내림차순 정렬
list_a.reverse() # [5, 5, 4, 3, 2, 1]
원소 삭제를 리스트 컴프리헨션으로도 구현할 수 있다.(여러 원소를 한 번에 삭제할 수 있다.)
list_b = [1, 2, 3, 4, 4]
black_list = [2, 4]
white_list = [x for x in list_b if x not in black_list]
# [1, 3]
string = "Hello!"
string2 = 'Hello~'
quotes = 'This is the "Python"' # This is the "Python"
quotes2 = 'This is the \'Python\'' # This is the 'Python'
plus = string + ' ' +string2 #Hello! Hello~
str_is_list = "ABCDEF"
str_lis_list[2:4] # CD
튜풀 자료형은 리스트 자료형과 비슷하지만, 한 번 선언된 값을 변경할 수 없다는 점에서 차이가 있다.
tuple = ()
tuple = (1, 2, 3, 4, 5)
print(tuple[2])
tuple[2] = 9 #TypeError: 'tuple' object does not support item assignment
dict = dict()
dict = {}
dict['딸기'] = 'Strawberry'
dict['당근'] = 'Carrot'
dict['수박'] = 'Water melon'
dict['참외'] = 'Korean melon'
dict['메론'] = 'Melon'
#{
# '딸기': 'Strawberry',
# '당근': 'Carrot',
# '수박': 'Water melon',
# '참외': 'Korean melon',
# '메론': 'Melon'
#}
1) key 순회
#기본 : 키 순회
for x in dict:
print(x) # 딸기, 당근, 수박...
for x in dict.keys():
print(x) #위와 같다.
2) value 순회
for x in dict.values():
print(x) # Strawberry Carrot Water melon...
3) key와 value 모두 순회
for x in dict.items():
print(x) # ('딸기', 'Strawberry') ('당근', 'Carrot') ('수박', 'Water melon')...
for k,v in dict.items():
print(k, v) # 딸기 Strawberry 당근 Carrot 수박 Water melon...
중복을 허용하지만 순서가 없는 자료형
a = set([1,2,3,4,5])
b = {1,2,3,4,5}
집합 자료형끼리의 연산
a | b #합집합
a & b #교집합
a - b #차집합
집합 자료형 관련 함수
a.add(4)
a.update()
a.remove()
파이썬 문법중 주요한 자료형인 숫자, 리스트, 문자열, 튜플, 딕셔너리, 집합 자료형에 대해 알아보았다.
느낀점,여담 💖🔥