TECH

[python] sort, sorted ν•¨μˆ˜μ—μ„œ λžŒλ‹€ ν‘œν˜„μ‹μœΌλ‘œ 쑰건 μ§€μ •ν•˜κΈ°

ttaerrim 2021. 7. 22. 13:45

λžŒλ‹€ ν‘œν˜„μ‹μ΄λž€?

λžŒλ‹€ ν‘œν˜„μ‹μ€ 식 ν˜•νƒœλ‘œ λ˜μ–΄ μžˆλ‹€κ³  ν•΄μ„œ λžŒλ‹€ ν‘œν˜„μ‹(lambda expression)이라고 λΆ€λ₯Έλ‹€. 특히 λžŒλ‹€ ν‘œν˜„μ‹μ€ ν•¨μˆ˜λ₯Ό κ°„νŽΈν•˜κ²Œ μž‘μ„±ν•  수 μžˆμ–΄μ„œ λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인수둜 넣을 λ•Œ 주둜 μ‚¬μš©ν•œλ‹€.

 


μ •λ ¬ ν•¨μˆ˜μ—μ„œ μ‚¬μš©ν•˜κΈ°

 

s = ['2 A', '1 A', '4 C', '1 B']

λΌλŠ” λ°°μ—΄ sκ°€ μžˆμ„ λ•Œ, sorted()둜 μ •λ ¬ν•œ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό 같을 것이닀.

 

>> sorted(s)
['1 A', '1 B', '2 A', '4 C']

 

 

첫 번째 문자인 μˆ«μžκ°€ μ•„λ‹Œ 두 번째 문자 ABCλ₯Ό μš°μ„ μœΌλ‘œ κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•˜κ³  싢을 λ•ŒλŠ” sorted ν•¨μˆ˜ 내뢀에 λžŒλ‹€ ν‘œν˜„μ‹μ„ μ§€μ •ν•˜μ—¬ μ •λ ¬ν•˜λ©΄ λœλ‹€.

 

>> sorted(s, key=lambda x: (x.split()[1], x.split()[0]))
['1 A', '2 A', '1 B', '4 C']