파이썬 문제로 배우기(파이썬을 파이썬답게)
- 데이터 분석
- 2022. 8. 3. 00:12
코딩 테스트 문제를 풀면서 파이썬을 파이썬 답게 사용할 수 있는 곳이 있습니다. 가격은 무료고, 기본적인 파이썬 지식만 있으면 금방 볼 수 있습니다. 저도 한번 하면서 이해가 안되거나 새로운 내용들을 정리해보았습니다. 간단하게 파이썬 관련된 문제를 풀어보고 싶으시면 따라해보시면 좋을 것 같습니다.
- 파이썬을 파이썬답게 : https://programmers.co.kr/learn/courses/4008
몪과 나머지 한번에 구하기
파이썬의 divmod 함수를 사용하면 한번에 출력 가능
a = 7
b = 5
print(*divmod(a, b)
문자열 정렬하기(ljust, center, rjust)
문자열을 좌측/가운데/우측 정렬하는 파이썬 함수를 사용할 수 있습니다.
'가나다라 ' # 좌측정렬
' 가나다라' # 우측 정렬
' 가나다라 ' # 가운데 정렬
s, n = input().strip().split(' ')
n = int(n)
len = len(s)
if len < n and (n-len) %2 == 0 :
print(s.ljust(n, " "))
print(s.center(n, " "))
print(s.rjust(n, " "))
알파벳 출력하기
함수를 이용해서 알파멧 a부터 z까지 가져오려고 할때 사용합니다.
import string
num = int(input().strip())
if num == 0 :
print(string.ascii_lowercase) # 소문자
elif num == 1 :
print(string.ascii_uppercase) # 대문자
원본을 유지한체 정렬된 리스트 구하기(sorted)
파이썬 sorted() 함수를 사용하면 리스트 원소를 쉽게 정렬할 수 있습니다.
list1 = [3, 2, 1]
list2 = sorted(list1)
2차원 리스트 뒤집기(zip)
zip 함수는 각 iterables의 요소들을 모으는 이터레이터를 만들어 줍니다. 아래코드 처럼 파이썬의 zip과 unpacking을 이용하면 코드 한줄로 리스트를 뒤집을 수 있습니다.
mylist = [ [1,2,3], [4,5,6], [7,8,9] ]
new_list = list(map(list, zip(*mylist)))
# output: # [[1, 4, 7], # [2, 5, 8], # [3, 6, 9]]
모든 멤버의 type 변환하기(map)
갹 iterable의 모든 멤버의 type을 변환하는 방법은 아래 코드처럼 map 함수를 사용하면 되니다.
저도 처음에 조금 이해하기 힘들었는데 자세한 내용은 여기(파이썬 코딩도장) 설명을 참고하면 금방 이해가 됩니다.
list1 = ['1', '100', '33']
list2 = list(map(int, list1))
# output: # [1, 100, 33]
곱집합(Cartesian product) 구하기(product)
파이썬은 product 함수를 사용하여 곱집합을 구할 수 있습니다.
예시) 두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy 입니다.
import itertools
iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'
itertools.product(iterable1, iterable2, iterable3)
2차원 리스트를 1차원 리스트로 만들기
2차원 리스트를 1차원으로 간단하게 만드는 방법이 있습니다. for문을 사용하지 않아도 쉽게 만들 수 있습니다.
my_list = [[1, 2], [3, 4], [5, 6]]
# 방법 1 - sum 함수
answer = sum(my_list, [])
#output : [1, 2, 3, 4, 5, 6]
for문과 if문을한번에 - List comprehension의 if문
파이썬의 list comprehension을 사용하여 한 줄 안에 for문과 if문을 한 번에 처리할 수 있습니다.
mylist = [3, 2, 6, 7]
answer = [ i**2 for i in mylist if i %2 == 0]
이진탐색하기(bisec)
파이썬은 이진탐색 코드를 일일이 코딩하지 않고 함수를 이용하여 쉽게 사용할 수 있습니다.
import bisect
mylist = [1, 2, 3, 7, 9, 11, 33]
print(bisect.bisect(mylist, 3))
파일 입출력 간단하게 하기
파이썬은 with -as 구문을 이용하여 간결하게 파일 입출력을 할 수 있습니다. 아래와 같이 코드를 사용하면 됩니다.
with open('myfile.txt') as file:
for line in file.readlines():
print(line.strip().split('\t'))
'데이터 분석' 카테고리의 다른 글
데이터 분석을 위한 데이터 전처리 방법 - Data Cleaning (0) | 2022.08.05 |
---|---|
머신러닝(Machine Learning) 이란? (0) | 2022.05.26 |
이 글을 공유하기