Python 문법 정리 (자료형)

dev_joo·2024년 4월 12일

서론

코딩테스트 문제를 풀기 전 Python의 문법을 정리하고 문제를 풀 때 참고해가면서 풀며 익숙해지기 위해 정리해 놓기로 했다.


1. 자료형

1) 수 자료형

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과 구분)
#수 자료형의 연산 (헷갈리는 것만)
// #몫 연산; 소수점이 나오지 않는 몫 연산
** #거듭제곱 연산

2) 리스트 자료형

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']

a. 리스트 슬라이스

리스트 슬라이스는 반 닫힌 구간을 표시한다.

list_a[1:4]

리스트 슬라이스

b. 리스트 컴프리헨션

[] 안에 들어갈 값, 반복문, 조건문을 넣어 리스트를 초기화 할수 있다.

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]

조건문을 생략할 수도 있다.

c. 다차원 리스트

다차원 리스트를 초기화 할 때 리스트 컴프리헨션이 자주 사용된다.

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]
	]
]

d. 리스트 메소드

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]

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

4)튜플 자료형

튜풀 자료형은 리스트 자료형과 비슷하지만, 한 번 선언된 값을 변경할 수 없다는 점에서 차이가 있다.

tuple = ()
tuple = (1, 2, 3, 4, 5)
print(tuple[2])
tuple[2] = 9 #TypeError: 'tuple' object does not support item assignment

5)딕셔너리 자료형

dict = dict()
dict = {}

dict['딸기'] = 'Strawberry'
dict['당근'] = 'Carrot'
dict['수박'] = 'Water melon'
dict['참외'] = 'Korean melon'
dict['메론'] = 'Melon'
#{
#	'딸기': 'Strawberry',
#	'당근': 'Carrot',
#	'수박': 'Water melon',
#	'참외': 'Korean melon',
#	'메론': 'Melon'
#}

a. 딕셔너리 순회

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...
	

6) 집합 자료형

중복을 허용하지만 순서가 없는 자료형

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()

마무리


파이썬 문법중 주요한 자료형인 숫자, 리스트, 문자열, 튜플, 딕셔너리, 집합 자료형에 대해 알아보았다.

느낀점,여담 💖🔥

profile
풀스택 연습생. 끈기있는 삽질로 무대에서 화려하게 데뷔할 예정 ❤️🔥

0개의 댓글