본문 바로가기

Script/Python

15.  Generic  Operation With Containers

자주 사용되는 Generic 함수는 아래와 같다. 
 
자주 사용되는 기능을 살펴보도록 하자.
 
 
 
 
range
 
일반적으로 반복문에서 사용하는 함수이다.
 
원소를 순회하는 경우 흔히 아래와 같이 사용한다.
 
range 에 startIndex 와 step 은 생략해도 무방하다.
 
l = ['apple', 'orange', 'banana' ]
for i in range( len(l) ) :
    print("index : {0} , value : {1}".format(i, l[i]))
 
 
enumerate
 
Sequence Container 를 입력으로 받아 인덱스와 엮어 튜플 형태로 리턴해주는 함수다.
 
시작값을 입력하면 해당 시작값 부터 인덱스를 증가시킨다.
 
튜플 형태로 리턴하므로 for i,v 로 튜플을 받을 수 있도록 묶어줘야 한다.
 
l = ['apple', 'orange' , 'banana' ]
for i,v in enumerate(l, 10) :
    print("index : {0} , value : {1}".format(i, v))
 
 
list comprehensions
 
[ <표현식> for <아이템> in < SequenceObj > ( if <조건식> ) 으로 이뤄져 있다.
 
if<조건식> 을 통과한 인자에 대해 <표현식> 을 적용한 결과가 리턴된다.
 
if<조건식> 은 없을 수도 있다.
 
# iteration without if condition
l = [1, 2, 3, 4, 5]
print( [ i*2 for i in l] ) #  [2, 4, 6, 8, 10]
 
# iteration with if condition
s = ["apple", "banana", "orange" , "kiwi" ]
print( [ i for i in s  if len(i) > 5 ] ) #['banana', 'orange']
 
# using two list
L_1 = [3,4,5]
L_2 = [1.5,0.5, 3]
print ( [ x*y for x in L_1 for y in L_2] ) #[4.5, 1.5, 9, 6.0, 2.0, 12, 7.5, 2.5, 15]
 
 
 
filter
 
말마따나 필터링이 통과한 것만 리스트로 만들어주는 함수다
 
def GetBiggerThan20(i):
    return i > 20
 
L = [10,20,40,50]
print ( list(filter(GetBiggerThan20, L)) ) # [40, 50]
 
 
zip
 
zip 함수를 이요하면 3개 이상의 시퀀스형이나 이터레이터형 객체를 튜플 형태로 zip 하고 분리도 해준다.
 
zip 함수의 인자로는
 
 - 내장 시퀀스형 자료,
 
 - 이터레이터를 지원하는 사용자 클래스,
 
 - 이터레이터 객체
 
가 가능하며, 결합을 시키고자 하는 개수만큼 올 수 있다.
 
반환 값은 튜플 객체의 이터레이터형이다.
 
#zip
X = [10, 20, 30]
Y = ['a', 'b', 'c' ]
XY = list (zip(X,Y))
print(XY) # [(10, 'a'), (20, 'b'), (30, 'c')]
 
#unzip
X2 , Y2 = zip (*XY)
print(X2)
print(Y2)
 
 
map
 
map 은 시퀀스형 객체를 순회하면서 모든 값을 갱신할 때 사용한다
 
map(<함수이름>, 이터레이션 가능객체, ... ) 
 
의 형태로 사용한다.
 
def Add10(i):
    return i + 10
 
L = [1, 2, 3]
 
# Item: 11
# Item: 12
# Item: 13
for i in map(Add10, L):
    print("Item: {0}".format(i))
 
 
 

'Script > Python' 카테고리의 다른 글

17. Module  (0) 2020.01.15
16. Class  (0) 2020.01.15
14. Documentation  (0) 2020.01.15
13. pass  (0) 2020.01.15
11. Conditional Statements  (0) 2020.01.15