파이썬 문법 시리즈

문제풀이용 파이썬 문법 - 1

문제풀이용 파이썬 문법 - 2


어썸한 문법 제보 받습니다.

1. 입력

1-1. 여러 정수가 들어올 때 입력 받기

a, b = map(int, input().split())

1-2. 여러 정수를 리스트로 받기

lst = [*map(int, input().split())] # [1, 2, 3]
lst = list(map(int, input().split()))
lst = [int(x) for x in input().split()]

1-3. 문자를 리스트로 받기

lst = input().split() # ['a', 'b', 'c']

1-4. 입력값 따로 받기

first, *mid, last = map(input().split()) # input: 1 2 3 4 5
# first: 1
# mid: [2, 3, 4]
# last: 5

1-5. 입력 시간 줄이기

import sys

input = sys.stdin.readline

2. 출력

2-1. end: 출력 끝에 문자 추가

lst = [1, 2, 3, 4, 5]

for n in lst:
	print(n, end=' ')
# output: 1 2 3 4 5

2-2. sep: 객체 사이에 문자 추가

lst = [1, 2, 3, 4, 5]
print(*lst, sep=',') # output: 1,2,3,4,5

2-3. join: 문자열 출력

lst = ['a', 'b', 'c']
print(''.join(lst)) # output: abc

2-4. 리스트 출력

lst = [1, 2, 3, 4]
print(*lst) # 1 2 3 4

3. enumerate

lst = ['a', 'b', 'c']
for idx, c in enumerate(lst):
	print(idx, c)
# output
# 0 a
# 1 b
# 2 c
lst = list(enumerate(['a', 'b', 'c']))
# [(0, 'a'), (1, 'b'), (2, 'c')]

4. set

4-1. 선언

# 빈 set
s = {}
s = set()

# 선언 및 초기화
s = {1, 2, 3, 4, 5, 6}

# 리스트 변환
lst = [1, 1, 2, 3, 3]
s = set(lst) # {1, 2, 3}

4-2. 집합연산

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

intersection = A & B # {3, 4}
union = A | B # {1, 2, 3, 4, 5, 6}
difference = A - B # {1, 2}

5. dictionary

5-1. 선언

key_lst = ['a', 'b', 'c']
val_lst = [10, 20, 30]

# 반복문으로 생성
dic = {}
for key, val in key_lst, val_lst:
	dic[key] = val
# {'a': 10, 'b': 20, 'c': 30}

# zip으로 생성
dic = dict(zip(key_lst, val_lst)) # {'a': 10, 'b': 20, 'c': 30}

# dictionary comprehension
dic = {x:y for x, y in zip(key_lst, val_lst)} # {'a': 10, 'b': 20, 'c': 30}

5-2. defaultdict

# 기본 dictionary
dic = dict(zip(key, val)) # {'a': 10, 'b': 20, 'c': 30}
print(dic['kk']) # error!

# defaultdict - int
from collections import defaultdict

dic = defaultdict(int)
print(dic['kk']) # 0

# defaultdict - list
from collections import defaultdict

dic = defaultdict(list)
dic['a'].append(42)
print(dic['a']) # [42]

6. Counter

6-1. 초기화

from collections import Counter

counter = Counter("abracadabra")
print(counter)
# Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})

6-2. elements()

c2 = Counter(a=3, b=2, c=-1)
print(list(c2.elements()))
# ['a', 'a', 'a', 'b', 'b']

6-3. most_common(n)

counter = Counter("abracadabra")
print(c1.most_common(2))  
# [('a', 5), ('b', 2)]

6-4. subtract()

c3 = Counter(a=3, b=2, c=1)
c3.subtract({'a': 1, 'c': 2})
print(c3)
# Counter({'a': 2, 'b': 2, 'c': -1})

6-5. update()

c3.update({'a': 1, 'c': 2})
print(c3)  
# Counter({'a': 3, 'b': 2, 'c': 1})

7. 기타

7-1. 변수 swap

a, b = 4, 2
a, b = b, a
print(a, b) # 2 4