[python] 심화
2021. 4. 27. 23:58ㆍPython/문법
Ver. Jupyter Notebook (Anaconda3)
▶ 리스트 컴프리헨션(list comprehension)
# 각각의 요소에 제곱을 할 경우
A = [1,2,3,4,5,6,7,8,9,10]
B1 = []
for i in A:
B1.append(i**2) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
B2 = [x**2 for x in A] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
B3 = [x**2 for x in range(1,11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
▶ input 함수
A = input('크롤링할 데이터는 무엇입니까? ')
>>> 크롤링할 데이터는 무엇입니까? 대전 맛집
A # '대전 맛집'
▶ map 함수: 반복 대상
a, b = map(int, [1.2, 8.9]
print(a) # 1
print(b) # 8
c, d = map(float, '34')
print(c) # 3.0
print(d) # 4.0
▶ split 함수
'1 3 5'.split() # ['1', '3', '5']
A = list(map(int, input().split()))
>>> 2 4 6
A # [2, 4, 6]
▶ 람다 표현식: 익명 함수 (일회용)
# (lambda 매개변수1, 매개변수2 : 명령문)(인자1, 인자2)
def add(a, b):
return a+b
add(1, 3) # 4
(lambda a, b : a+b)(1, 3) # 4
# 람다 함수가 유용한 상황: 함수 자체를 입력으로 받는 또 다른 함수가 있을 때 굳이 새로운 함수를 정의하지 않고도 함수를 이용 할 수 있다.
A = [('홍길동' , 50), ('이순신', 32), ('아무개', 74)]
# 리스트를 인자로 받아 1번째 요소를 반환해주는 함수
def B(x):
return x[1]
B(A) # ('이순신', 32)
# sorted: 정렬
sorted(A, key=B) # [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
sorted(A, key=lambda x : x[1]) # [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
# map 함수를 이용하여 여러개의 리스트에 람다 함수 적용하기
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
C = map(lambda a,b : a+b, list1, list2)
list(C) # [7, 9, 11, 13, 15]
▶ for문으로 동적 변수
for i in range(1, 3):
globals()['변수_{}'.format(i)] = i+2
print(변수_1) # 3
print(변수_2) # 4
▶ class
class A:
z = 1
def __init__(self):
self.x = 10
def f1(self, y):
return self.x + y
a = A()
a.z # 1
a.x # 10
a.f1(20) # 30
a.z = a.z + 2
A.z # 1
a.z # 3
# 클래스 상속
class A:
def __init__(self):
self.x = 10
class B(A):
def f1(self,y):
return self.x + y
b = B()
b.x # 10
b.f1(20) # 30
'Python > 문법' 카테고리의 다른 글
[python] kaggle, boston marathon (0) | 2021.04.29 |
---|---|
[python] 외부데이터 (0) | 2021.04.29 |
[Python] 정리 (0) | 2021.04.29 |
[python] pandas (0) | 2021.04.28 |
[python] 기초 (0) | 2021.04.27 |