[코테] 자주 쓰이는 내장 함수와 method 정리

Bpius·2023년 5월 4일
0

알고리즘 입문

목록 보기
16/17
post-thumbnail

min(), max() :

가장 작은 값, 가장 큰 값 반환

lista = [1.1, 2.3, 3.0, 4.9, 5.5]
print(min(lista))
print(max(lista))
출력:
1.1
5.5

append() : 추가되는 입력이 하나의 리스트로 추가

lista = [1, 2, 3]
listb = [4, 5, 6]
listA.append(listb)
print(lista)
출력:
[1, 2, 3, [4, 5, 6]]

extend() : 추가하는 입력이 iterable(반복가능한 객채)이면 객채를 하나씩 꺼내어 추가

listA = [1, 2, 3]
listb = [4, 5, 6]
listA.extend(listb)
print(listA)
출력:
[1, 2, 3, 4, 5, 6]

insert() : 해당 인덱스에 요솟값 추가

lista = [1, 2, 3]
listb = [4, 5, 6]
lista.insert(1, listb) # 인덱스 1번 자리에 listb 추가
print(lista)
출력:
[1, [4, 5, 6], 2, 3]

pop() : 제일 마지막 인덱스 꺼내서 반환('스택'관련 문제에 사용)

lista = [1, 2, 3]
lista.pop() # default = 마지막 인덱스, 인덱스 값을 넣으면 해당 인덱스 값 반환(ex:pop(1))
print(lista)
출력:
[1, 2]

reverse() : 현재 나열된 배열을 뒤집는다.(역순 정렬이 아님)

lista = [1, 2, 3]
lista.reverse()
print(lista)
출력:
[3, 2, 1]

sort() : 오름차순 정렬(기존 리스트 자체를 정렬)

# 오름차순
lista = [1, 3, 2]
lista.sort()
print(lista)
출력:
[1, 2, 3]
# 내림차순
lista = [1, 3, 2]
lista.sort(reverse=True)
print(lista)
출력:
[3, 2, 1]

sorted() : 오름차순 정렬(기존 리스트는 그대로 두고, 정렬된 리스트를 '반환')

# 오름차순
lista = [1, 3, 2]
a = sorted(lista)
print(a) # 반환받은 값
print(lista) # 기존 리스트
출력:
[1, 2, 3] # 반환
[1, 3, 2] # 기존
# 내림차순
lista = [1, 3, 2]
a = sorted(lista, reverse=True)
print(a)
print(lista)
출력:
[3, 2, 1]
[1, 3, 2]
# 정렬이 될 수 있는 것들
lista = ['asdf', 'asdfadsf', 'sd', 'a', 'asde']
a = sorted(lista, key=len)
print(a)
출력:
['a', 'sd', 'asdf', 'asde', 'asdfadsf'] # 길이가 짧은 순으로 정렬

lambda 함수 : 정렬할 때 같이 자주 쓰이는 함수

key에 lambda 함수를 적용할 때, x는 lista를 받아서 인덱스 1번 값을 기준으로 정렬(그리디 문제에서 자주 사용)

lista = [[1, 2, 4], [1, 1, 7], [4, 2, 5], [6, 5, 11], [4, 8, 21]]
a = sorted(lista, key=lambda x: x[1])
print(a)
출력:
[[1, 1, 7], [1, 2, 4], [4, 2, 5], [6, 5, 11], [4, 8, 21]]
or
lista.sort(key=lambda x: x[1])

enumerate() : 인덱스와 해당 인덱스의 값을 반환

lista = [1, 2, 3, 4, 5]
for idx, val in enumerate(lista):
    print(idx, val)
출력:
0 1
1 2
2 3
3 4
4 5

filter(function, iterator) :

반복가능한 iterator 값들이 function에 적용되어, '참'이 될 경우만 필터링 하여 반환.
lambda 함수가 function으로 자주 같이 쓰임.
filter()는 반환값이 filter 타입의 형태로 반환되기에 보통 list로 반환는다.

lista = [1, 2, 3, 4, 5]
a = list(filter(lambda x: x % 2 == 0, lista))
print(a)
출력:
[2, 4]

map(function, iterator) :

filter이 조건의 참인 것만 반환하였다면, map는 iterator의 원소 하나하나를 함수에 적용시킬 때 쓴다.
간단히 정수로 반환시키거나, 숫자형 문자를 숫자로 간단히 변형시킬 때 자주 쓰인다(ex: 후위연산식 계산 문제, 문자열 문제)

lista = [1.1, 2.3, 3.0, 4.9, 5.5]
a = list(map(int, lista))
print(a)
출력:
[1, 2, 3, 4, 5]

zip() :

iterable(반복가능한 객채) 2개 이상을 받아 인덱스가 같은 원소를 묶어 '튜플'로 반환.

lista = [1.1, 2.3, 3.0, 4.9, 5.5]
listb = [10, 20, 30, 40, 50]
listc = ['a', 'b', 'c', 'd', 'e']
wordd = 'ABCDE'
for i in zip(lista, listb, listc, wordd):
    print(i)
출력:
(1.1, 10, 'a', 'A')
(2.3, 20, 'b', 'B')
(3.0, 30, 'c', 'C')
(4.9, 40, 'd', 'D')
(5.5, 50, 'e', 'E')
##-----zip()을 쓰지 않은 경우:
lista = [1.1, 2.3, 3.0, 4.9, 5.5]
listb = [10, 20, 30, 40, 50]
listc = ['a', 'b', 'c', 'd', 'e']
wordd = 'ABCDE'
for i in (lista, listb, listc, wordd):
    print(i)
출력:
[1.1, 2.3, 3.0, 4.9, 5.5]
[10, 20, 30, 40, 50]
['a', 'b', 'c', 'd', 'e']
ABCDE

ord(), chr()

문자열 문제에 자주 사용

ord(): 문자를 입력받아 유니코드 정수로 반환

print(ord('a'))
출력:
97

chr(): 유니코드를 입력받아 문자로 반환

print(chr(97))
출력:
a

dict 자료형 반환

1.keys()

dicta = {'a':1, 'b':2, 'c':3}
for i in dicta.keys():
    print(i, end=' ') # 'end=': print()은 기본적으로 출력 후 개행(줄 바꿈)한다. 그 개행을 하지 말라는 것.
출력:
a b c 

2.values()

dicta = {'a':1, 'b':2, 'c':3}
for i in dicta.keys():
    print(i, end=' ')
출력:
1 2 3 

3.items() : key와 value 값을 한 번에 혹은 각각 받을 수 있다.

#한 번에
dicta = {'a':1, 'b':2, 'c':3}
for i in dicta.items():
    print(i, end=' ')
출력:
('a', 1) ('b', 2) ('c', 3) 
# 각각
dicta = {'a':1, 'b':2, 'c':3}
for i, j in dicta.items():
    print(i, j)
출력:
a 1
b 2
c 3

set() 집합 자료형

  1. add() : 집합 자료형은 추가할 때 add()사용
seta = {1, 2, 3}
seta.add(4)
print(seta)
출력:
{1, 2, 3, 4}
  1. 차집합(difference, -)
# - 마이너스 부호 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta - setb)
출력:
{1, 2}
# difference 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta.difference(setb))
출력:
{1, 2}
  1. 교집합(intersection, &)
# & 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta & setb)
출력:
{3}
# intersection 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta.intersection(setb))
출력:
{3}
  1. 합집합(union, |) : | : enter키 위에 있는 키
# | 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta | setb)
출력:
{1, 2, 3, 4, 5}
# union 사용
seta = {1, 2, 3}
setb = {3, 4, 5}
print(seta.union(setb))
출력:
{1, 2, 3, 4, 5}
  1. set()을 활용하여 dict()으로 : count() 사용
seta = {}
dicta = {}
a = 'aaccababbac'
for i in set(a):
    print('count', i, a.count(i))
    dicta[i] = a.count(i) # count(i): a에 i가 몇개 있는지 반환한다
print('dict', dicta)
출력:
count a 5
count b 3
count c 3
dict {'a': 5, 'b': 3, 'c': 3}
profile
데이터 굽는 타자기

0개의 댓글