패킹(packing)
변수 하나에 여러개의 값을 담는 것을 말한다. 변수 하나에 여러가지 값을 담으면 튜플로 패킹된다.
>>> a = 1, '가', 'A'
>>> print(a)
(1, '가', 'A')
언패킹(unpacking)
말 그대로 패킹의 반대이다. 패킹된 변수 안의 값을 여러개의 변수로 나누는 것이다. 패킹된 값의 개수와 언패킹할 변수의 개수가 같아야 한다. 그렇지 않으면 오류가 발생한다.
>>> print(a)
(1, '가', 'A')
>>> x, y, z = a
>>> print(x, y, z)
1 가 A
리스트의 원소를 조건에 따라 필터링 할때 쓴다.
필터를 적용할 함수를 매개변수로 받아서 함수 내에서 정의한 조건을 각 원소에 반영하여 필터링한다.
>>> li = list(range(1,6))
>>> print(li)
[1, 2, 3, 4, 5]
>>>
>>> def Filter_test(i):
return i % 2 == 0
>>> f = list(filter(Filter_test, li))
>>> print(f)
[2, 4]
위 코드는 리스트 li를 2로 나누어 떨어지는 숫자만 필터링하여 리스트로 출력한 것이다.
리듀스는 functools 모듈 안에 있으므로 import를 받아와야 사용 가능하다. 리듀스는 각 원소를 순차적으로 함수에 정의된 연산을 수행한다.
>>> li = [1, 2, 3, 4, 5]
>>>
>>> from functools import reduce
>>>
>>> def Reduce_test(a, b):
return a*b
>>> r = reduce(Reduce_test, li)
>>> print(r)
120
리스트 첫번째 원소부터 그 다음 원소를 정의된 연산을 한다. 그렇게 수행된 결과를 다음번 원소와 수행, 리스트의 끝까지 수행한뒤 결과를 리턴한다.