Python 문법 자랑

0

Python

목록 보기
5/5
post-thumbnail

기초적인 문법 or 큰 카테고리의 문법을 제외하고, 공부하면서 발견한 흥미로운 문법을 하나씩 추가해보자!

본격 Python만의 유용한 문법 자랑 TIME


  • rjust & ljust & zfill

    s.rjust(n, k) | s.ljust(n, k) | s.zfill(n)
    * k가 생략일 경우 띄어쓰기로 채움.
    * type(s) == type(k) == str
    * len(k) <= 1
# rjust
s1 = 'you'
k1 = '0'
n1 = 5 
print(s1.rjust(n1, k1)) # 00you | 기존의 n앞에 k를 붙여서 총 5글자를 만든다.
check = '123'.rjust(4))
print(check) # 123
print(len(check)) # 4 | 123옆에 공백 하나가 더 있는, '123 '인 것이다.

# ljust
a = '123'
print(a.ljust(5, '0')) # 12300
k = a.ljust(5)
print(k) # 123
print(len(K)) # 5 | k는 '123  '인 문자열이다.

# zfill: 0을 왼쪽부터 채운다.
print('300'.zfill(5)) # 00300

  • map & filter - with. lambda

  1. map과 filter는 반복 가능한 iterable 객체를 받아서 특정 함수를 적용시킨다.
  2. lambda는 특정 함수를 간략히 작성하기 위해 사용된다.
# map(함수, iterable 객체)
lst = ['1','2','3','4']
result = map(int, lst)
print(result) # 객체 주소 <map object at 0x7f70ca673890>
print(list(result)) # [1, 2, 3, 4] | map 객체를 list로 변형


# map with lambda
lst = ['1','2','3','4']
result = list(map(lambda x: int(x), lst))
''' 해석
1) map 함수로 인해 lst의 요소를 하나씩 받을 수 있다.
2) lambda로 인해 하나씩 받은 요소는 x가 되고, int(x)를 반환한다.
3) map 객체를 list로 묶어준다.
'''
print(result) # [1,2,3,4]



# filter(함수, iterable 객체)
def even(x): # 짝수를 구하는 함수
	if x % 2 == 0:
		return True
	else:
		return False
lst = [1,2,3,4,5]
result = filter(even, lst) # filter(필터 조건 함수, iterable한 객체)
print(result) # 객체 주소 <filter object at 0x7f70ca4d0bd0>
print(list(result)) # [2,4]


# filter with lambda
lst = [1,2,3,4,5]
result = list(filter(lambda x: x % 2 == 0, lst))
'''해석
1) lst의 요소를 filter에 넣는다.
2) lambda x 식의 조건을 만족하는 값만 반환한다.
3) x가 들어올 때, x%2==0을 만족하는 값
'''
print(result) # [2,4]

  • 컴프리헨션 (Comprehension)

    코드 간소화를 위해 함수나 파이썬 기능을 한 줄로 구현한 것.
# ex1) list
n = [1,2,3,4,5]
plus = []
for i in n:
	plus.append(i+1)
print(plus) # [2,3,4,5,6]
# 리스트 컴프리헨션을 사용하면?
compre = [i+1 for i in n]


# ex2) dict
n = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
dic_compre = {value: key for key, value in n.items()}


# ex3) 조건
numbers = {'amy': 7, 'jane': 9, 'sophia': 5, 'jay': 10}
pas = {name: 'PASS' if numbers > 8 else 'NO PASS' for name, numbers in numbers.items()}
print(pas) # {'amy': 'NO PASS', 'jane': 'PASS', 'sophia': 'NO PASS', 'jay': 'PASS'}
  • 또 어떤 재미있는 문법이 있을까?

profile
학습의 마무리는 '나의 언어로 설명하기'가 아닐까?

0개의 댓글