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() 집합 자료형
seta = {1, 2, 3}
seta.add(4)
print(seta)
출력:
{1, 2, 3, 4}
# - 마이너스 부호 사용
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}
# & 사용
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}
# | 사용
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}
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}