본문 바로가기
Python

Python 내장함수 issubclass(), isinstance(), lambda(), filter(), map(), sorted(), zip()

by 오렌지마끼야또 2022. 6. 19.
728x90
반응형

 

 

 

 

issubclass 함수

# Eagle 클래스는 Bird 클래스를 상속받음.
class Eagle(Bird):
   pass

insubclass(Eagle, Bird)

True

== Eagle 은 Bird 이다.

== Eagle 클래스는 Bird 클래스를 상속받았다.

== Eagle 클래스는 자식클래스이고 Bird 클래스는 부모클래스이다.

 

 

 

 

isinstance 함수

a = Eagle()
ininstance(a, Eagle)

True


b = 3
ininstance(b, Eagle)

False

 

 

 

 

lambda 함수

함수를 생성할 때 사용하는 예약어로 def와 동일한 역할. 보통 함수를 한 줄로 간결하게 만들고자 할 때 사용.

def sum(a, b):
   return a+b

sum = lambda a, b: a+b

sum(3, 4)

7

 

 

 

 

filter 함수

def positive(x):
   return x > 0

print(list(filter(positive, [1, -3, 2, 0, -, 6])))

[1, 2, 6]

두번째 인수인 리스트 값들이 첫번째 인수인 positive 함수에 입력되었을 때 참인것만 묶어서 돌려준다.

위의 코드는 lambda 함수를 써서 간단하게 작성할 수 있다.

print(list(filter(lambda x: x>0, [1, -3, 2, 0, -5, 6])))

filter 함수는 인자로들어온 객체를 변경하는 것이 아니라 새로운 객체를 만들어서 반환한다. (id 가 다름)

 

 

 

 

map 함수

def two_times(x):
   return x*2

print(list(map(two_times, [1, 2, 3, 4])))

[2, 4, 6, 8]

두번째 인수인 리스트 값들이 첫번째 인수인 two_times 함수에 입력되었을 때 결과값을 돌려준다.

위의 코드는 lambda 함수를 써서 간단하게 작성할 수 있다.

print(list(map(lambda x: x*2, [1, 2, 3, 4])))

map 함수는 인자로들어온 객체를 변경하는 것이 아니라 새로운 객체를 만들어서 반환한다. (id 가 다름)

a = [1.2, 2.5, 3.7, 4.6]
for i in range(len(a)):
   a[i] = int(a[i])


a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a))

print(a)

[1, 2, 3, 4]

 

 

 

 

sorted 함수

iterable 한 객체를 받아서 정렬한 값을 새로운 객체를 만들어 리스트로 반환한다.

a = [2, 1, 3]
b = sorted(a)
print(b)

[1, 2, 3]


a = (3, 2, 1) # 튜플
b = sorted(a)
print(b)

[1, 2, 3]


a = 'zero'
b = sorted(a)
print(b)

['e', 'o', 'r', 'z']

 

list 에도 sort 내장함수가 있는데 이는 list 자체를 정렬하는 함수이기 때문에 리턴값이 없다.

a = [3, 2, 1]
b = a.sort()
print(b)

None

print(a)

[1, 2, 3]

 

 

 

 

zip 함수

2개 이상의 동일한 개수로 이루어진 iterable 한 객체를 받아서 묶어준다.

print(list(zip([1, 2, 3], [4, 5, 6])))

[(1, 4), (2, 5), (3, 6)]


print(list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9])))

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]


print(list(zip('abc', 'def')))

[('a', 'd'), ('b', 'e'), ('c', 'f')]

 

 

 

 

 

728x90
반응형

댓글