재 현
파이썬을 파이썬답게 본문
파트 2. 정수 다루기
# 몫과 나머지
a = 7
b = 5
print( *divmod(a, b) )
# n진법
num = '3212'
base = 5
answer = int(num, base)
파트3. Str 다루기
# 문자열 정렬
s = '가나다라'
n = 7
s.ljust(n) # 좌측 정렬
s.center(n) # 가운데 정렬
s.rjust(n) # 우측 정렬
#알파벳 출력하기
import string
string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits # 숫자 0123456789
파트4. Iterable 다루기
*Iterable이란? 자신의 멤버를 한번에 리턴할 수 있는 객체입니다. ex) list, str, tuple, dictionary 등
# 원본을 유지한채, 정렬된 리스트 구하기 - sorted
list1 = [3, 2, 1]
list2 = sorted(list1)
# 2차원 리스트 뒤집기 - zip
mylist = [ [1,2,3], [4,5,6], [7,8,9] ]
new_list = list(map(list, zip(*mylist))) // [[1,4,9],[2,5,8],[3,6,9]]
mylist = [ 1,2,3 ]
new_list = [ 40, 50, 60 ]
for i in zip(mylist, new_list):
print (i)
// (1, 40) (2, 50) (3, 60)
사용 예 #1 - 여러 개의 Iterable 동시에 순회할 때 사용
사용 예 #2 - Key 리스트와 Value 리스트로 딕셔너리 생성하기
파이썬의 zip 함수와 dict 생성자를 이용하면 코드 단 한 줄로, 두 리스트를 합쳐 딕셔너리로 만들 수 있습니다.
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
# 모든 멤버의 type 변환하기 - map
1. type변환
2. map으로 입력받기 ex) a,b = map(int,input().split())
3. 일반함수 매핑 ex) for name in map(func, users): print(name)
4. 람다함수 매핑 ex) list(map(lambda x:len(x),mylist))
파이썬의 map을 사용하면 for 문을 사용하지 않고도 멤버의 타입을 일괄 변환할 수 있습니다.
*map함수의 결과타입은 map object이므로 타입을 바꿔서 사용하자
list1 = ['1', '100', '33']
list2 = list(map(int, list1))
answer = list(map(lambda x:len(x),mylist))
[[1], [2]] | [1,1] |
[[1, 2], [3, 4], [5]] | [2,2,1] |
파트5. Sequence Types 다루기
* Sequence Type이란? int 타입 인덱스를 통해, 원소를 접근할 수 있는 iterable 입니다. ex) list, str, tuple
# sequence 멤버를 하나로 이어붙이기 - join
알고리즘 문제를 풀다보면, 시퀀스의 멤버들을 하나의 string으로 이어붙여야 할 때가 있습니다
ex ) 문자열 배열 ['1', '100', '33']을 이어 붙여 문자열 '110033' 만들기
my_list = ['1', '100', '33'] answer = ''.join(my_list)
# 삼각형 별찍기 - sequence type의 * 연산
이번 강의에서는 곱셈 연산 *를 통해 문자열을 반복하는 방법을 배웁니다.
예시)
- 'abc', 'abcabc', 'abcabcabc', 'abcabcabcabc ...' 과 같이 'abc'가 n번 반복되는 문자열 만들기
- [123, 456, 123, 456, 123 ...] 과같이 123, 456이 n번 반복되는 리스트 만들기
n = 어쩌고
answer= [123, 456]*n
파트 7. 기타
# for 문과 if문을 한번에 - List comprehension의 if 문
mylist = [3, 2, 6, 7]
answer = [ i**2 for i in mylist if i %2 == 0]
'Coding test' 카테고리의 다른 글
행렬의 덧셈 (0) | 2020.11.24 |
---|---|
정수 제곱근 (0) | 2020.11.24 |
3진법 뒤집기 (0) | 2020.11.17 |
10912. 외로운 문자 (0) | 2020.11.17 |
K번째 수 (0) | 2020.11.16 |