참고 자료
https://docs.python.org/3/library/functions.html
파이썬 버전 3.7 기준
시퀀스형 자료형(리스트, 튜플 등)과 관련된 내장함수
시퀀스형 자료형으로 변경해주는 내장함수(list(), set(), tuple(), frozenset(), range()) 등에 대한 내용은 여기를 참고한다.
○ 먼저 쉽게 설명하면 리스트와 튜플과 같은 시퀀스형 자료형 대부분은 이터레이블하다.
○ 이터레이블에 대한 자세한 설명은 여기를 참고한다.
시퀀스형 자료형의 요소수를 반환하는 내장함수
len(s)
○ 객체의 길이 혹은 항목의 수를 반환한다.
○ 입력 인자로는 시퀀스형과 같은 자료형이 들어갈 수 있다.
사용 예)
In[79]: len([1,2,3,4,5,6])
Out[79]: 6
In[80]: len(set([1,2,2,3,4,4,3,5,6]))
Out[80]: 6
시퀀스형 자료형을 가공하는 내장함수
zip(*iterables)
○ iterables의 요소들을 모으는 이터레이터를 만든다.
○ 같은 인덱스를 가지는 요소들끼리 모으며, 모여진 요소들은 하나의 튜플로 묶인다.
▷ 입력된 iterables들 중 가장 짧은 iterables의 길이에 맞춰 요소를 모은다.
사용 예)
In[11]: a=[1,2,3,4,5,6,7,8,9,10]
In[12]: b=['a','b','c','d','e','f','g','h','j','k']
In[13]: c=[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0]
In[14]: list(zip(a,b,c))
Out[14]:
[(1, 'a', 1.0),
(2, 'b', 2.0),
(3, 'c', 3.0),
(4, 'd', 4.0),
(5, 'e', 5.0),
(6, 'f', 6.0),
(7, 'g', 7.0),
(8, 'h', 8.0),
(9, 'j', 9.0),]
enumerate(iterable, start=0)
○ 열거 객체를 반환한다.
○ 입력되는 인자는 이터레이터 혹은 이터레이션을 지원하는 객체이어야 한다.
▷ 시퀀스형에서 대표적으로, 리스트 튜플, 딕셔너리 등이 있으며, 집합과 같은 객체는 입력해도 되지 않는다.
○ 열거 객체를 출력해준다는 특징으로 주로 for 문에서 많이 쓰인다.
사용 예)
In[21]: a=['good', 'batter', 'best']
In[22]: b= list(enumerate(a))
In[23]: b
Out[23]: [(0, 'good'), (1, 'batter'), (2, 'best')]
In[24]: for i, obj in enumerate(a):
...: print(i,obj)
...:
0 good
1 batter
2 best
map(function, iterable, ...)
○ iterable의 모든 항목에 function을 적용한 후 그 결과를 반환하여 이터레이터를 작성한다.
○ 입력되는 iterable의 개수는 function에 입력되는 변수의 수에 의존한다.
▷ 각 iterable의 요소 수가 다른 경우는 작은 쪽을 따라간다.
사용 예)
In[20]: a=[1,2,3,4,5,6,7,8,9,10]
In[21]: def func1(iter):
...: return iter/2
...:
In[22]: list(map(func1, a))
Out[22]: [0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]
In[23]: c=[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0]
In[24]: def func2(iter1, iter2):
...: return iter1/2+iter2/3
...:
In[25]: list(map(func2,a,c))
Out[25]:
[0.8333333333333333,
1.6666666666666665,
2.5,
3.333333333333333,
4.166666666666667,
5.0,
5.833333333333334,
6.666666666666666,
7.5]
요소 검사를 수행하는 내장함수
all(iterable)
○ 입력된 iterable의 모든 요소가 참인 경우나 iterable이 비어있는 경우 True를 반환한다.
○ 이외에는 False을 반환한다.
▷ 아래 예에서 all(c)가 False인데 그 이유는 []가 False을 가지기 때문이다. 이와 관련된 내용은 여기를 참고한다.
사용 예)
In[91]: a = [1,1.0,'a',True]
In[92]: b=[]
In[93]: c= [1,1.0,'a',True, []]
In[94]: all(a)
Out[94]: True
In[95]: all(b)
Out[95]: True
In[96]: all(c)
Out[96]: False
any(iterable)
○ 입력된 iterable의 요소중 하나라도 참이면 True를 반환하고, 이외의 경우에 대해선 False을 반환한다.
○ iterable이 비어있는 경우 False를 반환한다.
사용 예)
In[97]: a = [False,[],True]
In[98]: b=[]
In[99]: c=[[],False,0]
In[100]: any(a)
Out[100]: True
In[101]: any(b)
Out[101]: False
In[102]: any(c)
Out[102]: False
filter(function, iterable)
○ function이 True를 반환하는 iterable의 요소들로 이터레이터를 구축한다.
○ function값이 None인 경우 iterable중 True값을 가지는 결과만 살리는 결과를 구축한다.
사용 예)
#직접 함수를 제작하는 경우
In[28]: def func1(iter):
...: if iter < 5:
...: return True
...: else: return False
...:
In[29]: a=list(filter(func1,[1,2,3,4,6,7,8,9,10]))
In[30]: a
Out[30]: [1, 2, 3, 4]
#lambda 이용
In[31]: a=list(filter(lambda x: x>5, [1,2,3,4,6,7,8,9,10]))
In[32]: a
Out[32]: [6, 7, 8, 9, 10]
슬라이스 내장함수
slice(stop) 또는 slice(start, stop[, step])
○ range(start, stop, step)에 의해 지정된 인덱스 세트를 나타낸다. 즉, 인덱싱을 하기위한 range()라고 생각하면된다.
○ step은 생략될 경우 1이 기본 값이다.
○ slice함수를 사용하는것과 : 을 사용하는 것은 동일하다.
사용 예)
In[18]: a=[i for i in range(20)]
In[18]: a
Out[18]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
In[19]: b=a[slice(10)]
In[20]: b == a[:10]
Out[20]: True
In[21]: b
Out[21]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In[22]: c=a[slice(1,10,2)]
In[23]: c == a[1:10:2]
Out[23]: True
In[24]: c
Out[24]: [1, 3, 5, 7, 9]
요소 정렬을 위한 내장함수
sorted(iterable, *, key=None, reverse=False)
○ 리스트를 정렬하는 sort()와는 약간 사용법이 다르다.
▷ sort는 list.sort() 형태로 사용하지만 sorted()함수는 sorte(input)형태로 사용한다.
○ iterable의 항목들을 정렬하여 새 리스트를 반환한다.
○ 문자열, 튜플, 리스트, 딕셔너리 등이 입력 변수로 들어가나 출력은 리스트로 된다.
▷ 딕셔너리를 기본 입력을 넣을 경우 key값들을 정렬해서 반환한다.
○ key인자는 리스트안에 리스트 혹은 리스트 안에 튜플들을 정렬할때 정렬 기준이 되는 값을 설정하는데 사용한다.
▷ 예를들어, [('snow', 1), ('winter', 2), ('large', 3) ] 라는 리스트안의 튜플들을 정렬하기 위해서 기준값을 잡는데 사용한다.
사용 예)
In[33]sorted([4,53,6,75,32])
Out[33]: [4, 6, 32, 53, 75]
In[34]: a=[('snow', 3), ('winter', 1), ('large', 2) ]
In[35]: sorted(a, key= lambda go: go[1])
Out[35]: [('winter', 1), ('large', 2), ('snow', 3)]
reversed(seq)
○ 입력된 객체의 순서를 뒤집는다.
○ 입력된 객체는 __reversed__() 메서드를 가지거나 시퀀스 프로토콜을 지원하는 객체여야 한다.
▷ 파이썬 내장자료형 중에서는 리스트가 이 메서드를 사용할 수 있다.
▷ 클래스를 통해 새로운 자료형을 만들어 내지 않는 사용자들에겐 리스트에서 이 방법을 통해 순서를 뒤집을 수 있다는 것 정도만 알면 될듯하다.
사용 예)
In[26]: a=['good', 'batter', 'best']
In[27]: a.reverse()
In[27]: a
Out[27]: ['best', 'batter', 'good']
'Python > 파이썬 기초' 카테고리의 다른 글
입출력과 관련된 내장함수(print, open, input) - 파이썬 기초(14) (0) | 2018.12.19 |
---|---|
eval(), exec(), compile() 내장함수 - 파이썬 기초(13) (0) | 2018.12.18 |
문자열형 자료형과 관련된 내장함수와 포맷팅 - 파이썬 기초(11) (0) | 2018.12.16 |
숫자형 자료형과 관련된 내장함수 - 파이썬 기초(10) (0) | 2018.12.04 |
자료형과 관련된 내장함수 - 파이썬 기초(9) (0) | 2018.12.02 |
댓글