[Python] 내장함수

Jimin_Note·2022년 5월 5일
1

[Python]

목록 보기
1/34
post-thumbnail

abs

입력받은 숫자의 절댓값을 돌려준다

>>> abs(5)
5
>>> abs(-20)
20
>>> abs(-2.3)
2.3

all

반복 가능한(iterable) 자료형을 입력 인수로 받음

입력받은 인수가 모두 참이면 True, 거짓이 하나라도 있으면 False

※ 반복 가능한 자료형이란 for문으로 그 값을 출력할 수 있는 것.

ex)리스트, 튜플, 문자열, 딕셔너리, 집합

>>> all([1, 2, 3])
True

리스트 자료형 [1, 2, 3]은 모든 요소가 참이므로 True

>>> all([1, 2, 3, 0])
False

리스트 자료형 [1, 2, 3, 0] 중에서 요소 0은 거짓이므로 False

>>> all([])
True

만약 all의 입력 인수가 빈 값인 경우에는 True

any

all 과 반대의 함수

>>> any([1, 2, 3, 0])
True

리스트 자료형 [1, 2, 3, 0] 중에서 1, 2, 3이 참이므로 True

>>> any([0, ""])
False

리스트 자료형 [0, ""]의 요소 0과 ""은 모두 거짓이므로 False

>>> any([])
False

만약 any의 입력 인수가 빈 값인 경우에는 False

chr

유니코드 값을 입력받아 그 코드에 해당하는 문자를 출력

※ 유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다.

>>> chr(97)
'a'
>>> chr(44032)
'가'

ord

문자의 유니코드 값을 돌려주는 함수이다.

※ ord 함수는 chr 함수와 반대이다.

>>> ord('a')
97
>>> ord('가')
44032

dir

객체가 자체적으로 가지고 있는 변수나 함수를 보여 줌

>>> dir([1, 2, 3])
['append', 'count', 'extend', 'index', 'insert', 'pop',...]
>>> dir({'1':'a'})
['clear', 'copy', 'get', 'has_key', 'items', 'keys',...]

divmod

2개의 숫자(a,b)를 입력받아 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수

>>> divmod(10, 3)
(3, 1)

enumerate

enumerate : "열거하다"

순서가 있는 자료형을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다.

※ 보통 enumerate 함수는 for문과 함께 자주 사용한다.

>>>for i, name in enumerate(['apple', 'banana', 'carrot']):
...     print(i, name)

0 apple
1 banana
2 carrot
  • enumerate를 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.

for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인덱스 값이 필요할때 enumerate 함수를 사용하면 매우 유용

eval

실행 가능한 문자열(ex : 1+2, 'hi' + 'a')을 입력으로 받아 문자열을 실행한 결과값을 돌려주는 함수

>>> eval('1+2')
3
>>> eval("'hi' + 'a'")
'hia'
>>> eval('divmod(4, 3)')
(1, 1)
  • 보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용

filter

첫 번째 인수로 함수 이름, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다.

두 번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서(걸러 내서) 돌려준다.

#positive.py
def positive(l):
    result = []
for i in l:
if i > 0:
    result.append(i)
return result

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

결과값: [1, 2, 6]

즉 위에서 만든 positive 함수는 리스트를 입력값으로 받아 각각의 요소를 판별해서 양수 값만 돌려주는 함수이다.

filter 함수를 사용하면 위 내용을 다음과 같이 간단하게 작성할 수 있다.

#filter1.py
def positive(x):
return x > 0

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

결과값: [1, 2, 6]

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

앞의 예에서는 1, 2, 6만 양수여서 x > 0 문장이 참이되므로 [1, 2, 6]이라는 결과값을 돌려주게 된 것이다.

앞의 함수는 lambda를 사용하면 더욱 간편하게 코드를 작성할 수 있다.

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

hex

정수 값을 입력받아 16진수(hexadecimal)로 변환하여 돌려주는 함수

>>> hex(234)
'0xea'
>>> hex(3)
'0x3'

id

객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수이다.

>>> a = 3
>>> id(3)
135072304
>>> id(a)
135072304
>>> b = a
>>> id(b)
135072304
>>> id(4)
135072292

위 예의 3, a, b는 고유 주소 값이 모두 135072304이다. 즉 3, a, b가 모두 같은 객체를 가리키고 있다.

id(4)라고 입력하면 4는 3, a, b와 다른 객체이므로 당연히 다른 고유 주소 값이 출력된다.

input

사용자 입력을 받는 함수

매개변수로 문자열을 주면 다음 세 번째 예에서 볼 수 있듯이 그 문자열은 프롬프트가 된다.

>>> a = input()
hi
>>> a
'hi'
>>> b = input("Enter: ")
Enter: hi

int

문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수

정수를 입력으로 받으면 그대로 돌려준다.

>>> int('3')
3
>>> int(3.4)
3

int(x, radix)는 radix 진수로 표현된 문자열 x를 10진수로 변환하여 돌려준다.

2진수로 표현된 11의 10진수 값은 다음과 같이 구한다.

>>> int('11', 2)
3

16진수로 표현된 1A의 10진수 값은 다음과 같이 구한다.

>>> int('1A', 16)
26

isinstance

첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다.

입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려준다.

>>>classPerson:pass

>>> a = Person()
>>> isinstance(a, Person)
True
>>> b = 3
>>> isinstance(b, Person)
False

b는 Person 클래스가 만든 인스턴스가 아니므로 False를 돌려준다.

len

입력값 s의 길이(요소의 전체 개수)를 돌려주는 함수

>>> len("python")
6
>>> len([1,2,3])
3
>>> len((1, 'a'))
2

list

반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려주는 함수이다.

>>> list("python")
['p', 'y', 't', 'h', 'o', 'n']
>>> list((1,2,3))
[1, 2, 3]

list 함수에 리스트를 입력으로 주면 똑같은 리스트를 복사하여 돌려준다.

>>> a = [1, 2, 3]
>>> b = list(a)
>>> b
[1, 2, 3]

map

함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다.

입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.

# two_times.py
def two_times(numberList):
    result = [ ]
for number in numberList:
        result.append(number*2)
return result

result = two_times([1, 2, 3, 4])
print(result)

two_times 함수는 리스트 요소를 입력받아 각 요소에 2를 곱한 결과값을 돌려준다. 실행 결과는 다음과 같다.

결과값: [2, 4, 6, 8]

>>>def two_times(x):
...return x*2
...
>>> list(map(two_times, [1, 2, 3, 4]))
[2, 4, 6, 8]

앞의 예는 lambda를 사용하면 다음처럼 간략하게 만들 수 있다.

>>> list(map(lambda a: a*2, [1, 2, 3, 4]))
[2, 4, 6, 8]

max(str, key=len)

인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수이다.

print (max([1, 2, 3]))
#3
print (max("python"))
#'y'

print(max('qwe','qwer','qwertttew','q', key=len))
#qwertttew

print(max('zzaa', 'zzab', key=len))
# zzaa
#문자열 길이가 다 똑같을 경우 인덱스가 작은 것 출력

print(max(['q','w','e'],['q'],['q','w','e','r','t'],['q','w','e','r'] ,key=len))
#['q','w','e','r','t']





min

max 함수와 반대로, 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 돌려주는 함수이다.

>>> min([1, 2, 3])
1
>>> min("python")
'h'

oct

정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려주는 함수이다.

>>> oct(34)
'0o42'
>>> oct(12345)
'0o30071'

open

open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수이다. 읽기 방법(mode)을 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 돌려준다.

w쓰기모드
r읽기모드
a추가모드
b바이너리모드

b는 w, r, a와 함께 사용한다.

>>> f = open("binary_file", "rb").  *rb : r(읽기모드)+b(바이너리모드)
>>> fread = open("read_mode.txt", 'r')
>>> fread2 = open("read_mode.txt")

기본값으로 읽기 모드 r를 갖게 된다.

다음은 추가 모드(a)로 파일을 여는 예이다.

>>> fappend = open("append_mode.txt", 'a')

pow

x의 y 제곱한 결과값을 돌려주는 함수이다.

>>> pow(2, 4)
16
>>> pow(3, 3)
27

range

range([start,] stop [,step] )는 for문과 함께 자주 사용하는 함수이다.

이 함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려준다.

인수가 하나일 경우

시작 숫자를 지정해 주지 않으면 range 함수는 0부터 시작한다.

>>> list(range(5))
[0, 1, 2, 3, 4]

인수가 2개일 경우

입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다.

단 끝 숫자는 해당 범위에 포함되지 않는다는 것에 주의하자.

>>> list(range(5, 10))
[5, 6, 7, 8, 9]

인수가 3개일 경우

세 번째 인수는 숫자 사이의 거리를 말한다.

>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

round

round(number[, ndigits]) 함수는 숫자를 입력받아 반올림해 주는 함수이다.

※ [, ndigits]는 ndigits가 있을 수도 있고 없을 수도 있다는 의미이다.

ndigits : 반올림하여 표시하고 싶은 소수점의 자릿수

>>> round(4.6)
5
>>> round(4.2)
4

다음과 같이 실수 5.678을 소수점 2자리까지만 반올림하여 표시할 수 있다.

>>> round(5.678, 2)
5.68

sorted

입력값을 정렬한 후 그 결과를 리스트로 돌려주는 함수

  • 숫자는 1,2,3~
  • 영어는 ‘a’ , ’b’ , ’c’~
  • 한글은 ‘ㄱ',’ㄴ',’ㄷ'~
>>> sorted([3, 1, 2])
[1, 2, 3]
>>> sorted(['a', 'c', 'b'])
['a', 'b', 'c']
>>> sorted("zero")
['e', 'o', 'r', 'z']
>>> sorted((3, 2, 1))
[1, 2, 3]
  • 리스트 자료형의 sort 함수는 리스트 객체 그 자체를 정렬만 할 뿐 정렬된 결과를 돌려주지는 않는다.

str

문자열 형태로 객체를 변환하여 돌려주는 함수

>>> str(3)
'3'
>>> str('hi')
'hi'
>>> str('hi'.upper())  *upper() : 대문자로 변환 / lower() : 소문자로 변환
'HI'

sum

입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 함수이다.

>>> sum([1,2,3])
6
>>> sum((4,5,6))
15

tuple

반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려주는 함수

만약 튜플이 입력으로 들어오면 그대로 돌려준다.

>>> tuple("abc")
('a', 'b', 'c')
>>> tuple([1, 2, 3])
(1, 2, 3)
>>> tuple((1, 2, 3))
(1, 2, 3)

type

입력값의 자료형이 무엇인지 알려 주는 함수

>>> type("abc")
<class 'str'>
>>> type([ ])
<class 'list'>
>>> type(open("test", 'w'))
<class '_io.TextIOWrapper'>

zip

동일한 개수로 이루어진 자료형을 묶어 주는 역할

>>> list(zip([1, 2, 3], [4, 5, 6]))
[(1, 4), (2, 5), (3, 6)]
>>> list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> list(zip("abc", "def"))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
>>> list(zip([1,2],[3,4,5]))  *개수가 다르면 남는 개수를 버림!
[(1,3),(2,4)]

itertools.permutations()

import itertools

pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.permutations(pool)))) # 3개의 원소로 수열 만들기
#['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']

print(list(map(''.join, itertools.permutations(pool, 2)))) # 2개의 원소로 수열 만들기
#['AB', 'AC', 'BA', 'BC', 'CA', 'CB']

pool = ['A', 'B', 'C']
print(list(map(''.join,itertools.permutations(pool,4)))) # 4개의 원소로는 수열을 만들수가 없어서 빈 리스트가 출력된다
#[]

collections.Counter()

동일값의 자료개수 확인

import collections

a = ['a', 'b', 'a', 'ac', 'ac', 'ac','a','c']
print(collections.Counter(a))
#Counter({'a': 3, 'ac': 3, 'b': 1, 'c': 1})

``
profile
Hello. I'm jimin:)

0개의 댓글