파이썬 알고리즘 문제 풀이에 자주 사용되는 형태 정리(계속 추가됨)

split 함수

문자열.split()
문자열.split('구분자')
문자열.split('구분자', 분할횟수)
문자열.split(sep='구분자', maxsplit=분할횟수)
구분자는 생략가능

문자열을 maxsplit 횟수만큼 sep 구분자를 기준으로 문자열을 구분하여 리스트로 만듦.

maxsplit의 기본값은 -1. 문자열 전체를 계속해서 자름
문자열.split(1) 불가능
문자열.split(',', 1) 가능
문자열.split(maxsplit=1) 가능

.split()의 경우 띄어쓰기와 엔터를 구분해서 문자열을 나눔.

예시)

s = "aa.bb.cc."
t = "aa.bb.cc.dfdf.adad.dfaioi"

 
r0 = s.split()
r1 = s.split('.')
r2 = s.split(sep='.')
print(r0)
print(r1)
print(r2)
print(t.split('.', 3))

결과 :
['aa.bb.cc.']

['aa', 'bb', 'cc']

['aa', 'bb', 'cc']

['aa', 'bb', 'cc', 'dfdf.adad.dfaioi']

map(function, iterable)

여러개의 데이터를 한 번에 다른 형태로 변환 가능.

인자 : 함수, 반복 가능한 자료형(리스트, 튜플 등)
함수에는 함수 또는 변환하고 싶은 자료형 list, int등이 들어올 수 있음.

users = [{'mail': '[email protected]', 'name': 'Brett Holland', 'sex': 'M'},
...  {'mail': '[email protected]', 'name': 'Madison Martinez', 'sex': 'F'},
...  {'mail': '[email protected]', 'name': 'Michael Jenkins', 'sex': 'M'},
...  {'mail': '[email protected]', 'name': 'Karen Rodriguez', 'sex': 'F'},
...  {'mail': '[email protected]', 'name': 'Amber Rhodes', 'sex': 'F'}]

def conver_to_name(user):
...     first, last = user["name"].split()
...     return {"first": first, "last": last}

for name in map(conver_to_name, users):
...     print(name)
...

결과 >
{'first': 'Brett', 'last': 'Holland'}
{'first': 'Madison', 'last': 'Martinez'}
{'first': 'Michael', 'last': 'Jenkins'}
{'first': 'Karen', 'last': 'Rodriguez'}
{'first': 'Amber', 'last': 'Rhodes'}

map과 split을 활용하여 입력 받은 정수들의 합을 구하기

a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
 
print(a + b)

결과 >
숫자 두 개를 입력하세요: 10 20 (입력)
30

print(sep="", end="")

출력문에 옵션 부여하기
sep = ""은 출력문들을 구분하면서 넣어줄 문자를 설정할 수 있음.
생략시 공백으로 구분됨
end = ""는 출력을 완료한 뒤의 내용을 수정할 수 있음.
생략시 자동으로 개행됨

print("a", "b", "c")
print("d", "e", "f")

결과 >
a b c
d e f

print("a", "b", "c", end = "")
print("d", "e", "f", sep = "")

결과 >
a b cdef

윗줄에서 개행을 없애고 아랫줄에서 구분자 없이 출력되도록 하였다.

print("a", "b", "c", end = "wow\n")
print("d", "e", "f", sep = "wow")

결과 >
a b cwow
dwowewowf

파이썬 문자열 연산

파이썬에서는 문자열의 더하기와 곱하기가 지원된다.

문자열 더하기는 문자열끼리 연결시켜준다.

a = '엄'
b = '준'
c = '식'
print(a + b + c)

결과 >
엄준식

문자열 곱하기는 곱한 개수만큼 문자를 출력할 수 있다.

for i in range(1, int(input())+1):
    print('*' * i)

결과 >
5 입력 >
*
**
***
****
*****

사칙연산 연산자

** 거듭제곱
// 나누기 연산 후 정수 부분(몫)
% 나누기 연산 후 나머지 부분

M = int(input())
a = M // 10		# 십의 자리 숫자
b = M % 10		# 일의 자리 숫자
print(a, b)

결과 >
26 입력 >
2, 6

좋은 웹페이지 즐겨찾기