본문 바로가기
알고리즘

Python 코딩테스트 끄적끄적

by 자라자 2021. 4. 20.

지속적인 업데이트 예정입니다.

 

1. defaultdict 사용(유사딕셔너리)

from collections import defaultdict

sample=defaultdict(int)
sample['dog']
print(sample.items())
sample['dog']+=1
print(sample.items())

2. list, dictionary comprehension

sample=[x for x in range(10)]
print(sample)
sample1={x:[] for x in ['a','b','c']}
print(sample1)

'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
{'a': [], 'b': [], 'c': []}
'''

3. zip : iterable한 객체 묶어서 튜플로 반환. 반복문 안에 넣어서 활용. i번째 원소끼리 튜플로

a=[1,2,3]
b=[4,5,6]
for i, j in zip(a,b):
  print(i,j)
'''
1 4
2 5
3 6
'''

4. lambda함수: (lambda 사용하는 인자: 함수식)(입력값)

print((lambda x,y: x*y)(20,2))
#40

sorted 함수에 넣어서 list나 dictionary를 정렬할 수 있다.

key=lambda x: x~ 여기서 x는 요소 그 자체이다. 리스트 안에서 쓰면 항목이 되고 딕셔너리 안에서 쓰면 키가 된다.

 

#list
x=[[1,2,3],
[3,3,1],
[4,2,1]]
print(sorted(x,key=lambda x: (x[1],x[0]),reverse=True))
#두번째 - 첫번째 원소 기준으로 이중 정렬

결과
[[3, 3, 1], [4, 2, 1], [1, 2, 3]]


#dictionary
sample={1:(1,1,1), 2:(0,1,2)}
b=sorted(sample,key = lambda x: sample[x][2])
print(b)

[1, 2]