* map
def solution(mylist):
return list(map(len, mylist))
위와 같이 작성해 각 리스트 원소 별 길이를 반환시킬 수도 있다.
* 몫과 나머지 - divmod
무조건 divmod를 사용하는 게 좋은 방법은 아닙니다.
가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수도 있습니다.
또한, divmod는 작은 숫자를 다룰 때는 a//b, a%b 보다 느립니다. 대신, 큰 숫자를 다룰 때는 전자가 후자보다 더 빠르지요.
* 진법 변환
num = '3212'
base = 5
answer = int(num, base)
5진수를 10진수로 변환
* 문자열 정렬하기 - ljust, center, rjust
s = '가나다라'
n = 7
s.ljust(n) # 좌측 정렬
s.center(n) # 가운데 정렬
s.rjust(n) # 우측 정렬
'가나다라 ' # 좌측정렬
' 가나다라' # 우측 정렬
' 가나다라 ' # 가운데 정렬
* 알파벳 출력하기 - string 모듈
import string
string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits # 숫자 0123456789
파이썬은 이런 데이터를 상수(constants)로 정의해놓았습니다.
* 2차원 리스트 뒤집기 - zip
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
==>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만듭니다.
튜플의 이터레이터를 돌려주는데, i 번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i 번째 요소를 포함합니다.
사용 예 #1 - 여러 개의 Iterable 동시에 순회할 때 사용
list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
answer = []
for i, j, k in zip(list1, list2, list3):
print(i + j + k)
사용 예 #2 - Key 리스트와 Value 리스트로 딕셔너리 생성하기
파이썬의 zip 함수와 dict 생성자를 이용하면 코드 단 한 줄로, 두 리스트를 합쳐 딕셔너리로 만들 수 있습니다.
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
* 2차원 리스트를 1차원 리스트로 만들기 - from_iterable
my_list = [[1, 2], [3, 4], [5, 6]]
# 방법 1 - sum 함수
answer = sum(my_list, [])
# 방법 2 - itertools.chain
import itertools
list(itertools.chain.from_iterable(my_list))
# 방법 3 - itertools와 unpacking
import itertools
list(itertools.chain(*my_list))
# 방법 4 - list comprehension 이용
[element for array in my_list for element in array]
# 방법 5 - reduce 함수 이용 1
from functools import reduce
list(reduce(lambda x, y: x+y, my_list))
# 방법 6 - reduce 함수 이용 2
from functools import reduce
import operator
list(reduce(operator.add, my_list))
OUTPUT : [1, 2, 3, 4, 5, 6]
* 가장 많이 등장하는 알파벳 찾기 - Counter
import collections
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 2, 3, 3, 5, 2, 6, 8, 9, 0, 1, 1, 4, 7, 0]
answer = collections.Counter(my_list)
print(answer[1]) # = 4
print(answer[3]) # = 3
print(answer[100]) # = 0
* 두 변수의 값 바꾸기 - swap
a = 3
b = 'abc'
a, b = b, a # 참 쉽죠?
* 클래스 인스턴스 출력하기 - class의 자동 string casting
파이썬에서는 __str__ 메소드를 사용해 class 내부에서 출력 format을 지정할 수 있습니다.
2차원 평면 위의 점을 나타내는 Coord 클래스의 인스턴스를 (x 값, y 값)으로 출력하기
class Coord(object):
def __init__ (self, x, y):
self.x, self.y = x, y
def __str__ (self):
return '({}, {})'.format(self.x, self.y)
point = Coord(1, 2)
반응형
'Python > python_study' 카테고리의 다른 글
21/1/24 python 추가 공부 (0) | 2021.01.25 |
---|---|
파이썬만의 트릭 (for-else문) (0) | 2021.01.21 |
정규표현식 추가 공부(2021/1/14) (0) | 2021.01.20 |
파이썬 공부 시작 - Day 3 (2020/12/27) - 이미지 크롤링 (0) | 2021.01.20 |
파이썬 공부 시작 - Day 2(2020/12/26) (0) | 2021.01.20 |