TIL- no23. python advanced1

sanghun Lee·2020년 7월 7일
0

Today I Learned

목록 보기
21/66

참고

1. Relevant words

iterable

자신의 멤버를 한번에 하나씩 리턴할 수 있는 객체이며 list tuple ,string, dict가 여기에 속한다.

Sequence

int type인덱스를 통해 원소에 접근할 수 있는 iterable이며 iterable의 하위카테고리라고 생각하면 된다 list tuple str이 여기 속하며 dict의 경우 다양한 타입을 통해 원소에 접근할 수 있기에 여기 속하지 않는다.

unpacking

unpacking statement중에는 for, if 같은것이 존재하며 쉽게 집합을 원소로 만들어준다 생각하면 된다 ??

아래는 리스트원소의 길이를 출력하는 list를 만들어내는 함수를 만드는 예제인데 두가지로 풀 수 있다.
하나는 Not pythonic
하나는 pythonic

2. 간단예제

Not pythonic

def solution(mylist):
	answer = []
    for i in mylist:
    	answer.append(i)
    return answer

Pythonic

def solution(mylist):
	return list(map(len , mylist))

참고로 나는 이런짓을 했다.

a = []
def solution(mylist):
	for i in range(len(mylist)):
    	b = len(mylist[i])
        a.append(b)
    answer = a
    return answer

3. Divmod

알고리즘 문제중 몫과 나머지를 요구하는 문제들이 더러 있음.
보통의 언어나 사고 방식이면
아래와 같이 풀것이다.

a = 7
b = 5
print(a//b, a%b)

하지만 파이썬에서는 divmod와 unpacking을 이용한다면 아래와 같이 코드를 짤 수 있다.

a = 7
b = 5
print(*divmod(a, b))

div mode의 경우 큰 숫자를 다룰때 첫번째 case보다 빠르지만 작은 수일 경우 그렇지 않다.

4. python 으로 N진법 출력하기

num, base = map(int, input().strip().split(' '))
num = str(num)
a = int(num, base)
print(a)

5. python 으로 문자열 정렬하기

우측 정렬 예

s = '가나다라'
n = 7

answer = ''
for i in range(n-len(s)): # 문자열의 앞을 빈 문자열로 채우는 for 문
    answer += ' '
answer += s
s, n = input().strip().split(' ')
n = int(n) # ljust , center , rjust
length = len(s)
if length < n and (n-length)%2 == 0:
    print(s.ljust(n))
    print(s.center(n))
    print(s.rjust(n))

6. Python 으로 알파벳 출력하기

string 모듈로 알파벳 출력하깅?
0을넣으면 소문자 1을넣으면 대문자 출력하기 문제가 있다.

num = int(input().strip())
if num == 0:
    print('abcdefghijklmnopqrstuvwxyz')
elif num ==1:
    print("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
import string 

string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits # 숫자 0123456789

오늘은 여기까지!
갑자기 난이도가 올라가서 당황스럽다 ..
열심히 복습해야겠다..

profile
알고리즘 풀이를 담은 블로그입니다.

0개의 댓글