sorted()
Prototype
sorted( <list> , key = <function> , reverse = <bool>)
# <list> ๋ฟ ์๋๋ผ, <Tuple>, <Dictionary>, <Str>์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- ์๋ณธ ๋ด์ฉ์ ๋ฐ๊พธ์ง ์๊ณ , ์ ๋ ฌํ ๊ฐ์ ๋ฐํํ๋ค.
- List, tuple, Dictionary, str์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
key
๋ฅผ ํตํ์ฌ ์ ๋ ฌํ ๊ธฐ์ค์ ์ ํ ์ ์๋ค.
reverse
๊ฐ True์ด๋ฉด ๋ด๋ฆผ์ฐจ์, False์ด๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค.
arr = [10, 40, 20, 15]
arr = sorted(arr, reverse = True)
print(arr)
>>>> [40, 20, 15, 10]
sort()
Prototype
<list>.sort(key = <function>, reverse = <bool>)
- ์๋ณธ ์์ฒด๋ฅผ ์์ ํ๋ค.
- ๋ฐํ๊ฐ์ None
- Tuple , Dictionary, Str ์๋ ์ฌ์ฉ์ด ๋ถ๊ฐํ๋ค.
key๊ฐ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ๊ฐ์ง ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ์คํํ ์ ์๋ค.
2์ค ๋ฆฌ์คํธ์์ ์ ๋ ฌํ๊ธฐ
array = [[50, "apple"], [30, "banana"] , [400, "melon"]]
์์ ๊ฐ์ด [Int, Str]
ํ์์ ์์๋ฅผ ๊ฐ์ง ๋ฆฌ์คํธ๊ฐ ์กด์ฌํ ๋
Int ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ
.sort() ํจ์ ์ฌ์ฉ
array.sort(key = lambda x:x[0])
print(array)
>>>>> [[30, 'banana'], [50, 'apple'], [400, 'melon']]
sorted() ํจ์ ์ฌ์ฉ
print(sorted(array, key = lambda x: x[0]))
>>>>> [[30, 'banana'], [50, 'apple'], [400, 'melon']]
Str์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ
Sort() ํจ์ ์ฌ์ฉ
array.sort(key = lambda x:x[1])
print(array)
>>>>>[[50, 'apple'], [30, 'banana'], [400, 'melon']]
sorted() ํจ์ ์ฌ์ฉ
print(sorted(array, key = lambda x: x[1]))
>>>>>[[50, 'apple'], [30, 'banana'], [400, 'melon']]
# key๊ฐ ์ฌ๋ฌ๊ฐ ์ผ๋ (๋ค์ค์กฐ๊ฑด ์ ๋ ฌ)
array = [("A", 18, 300000) , ("F", 24, 10000), ("T", 24, 200000),("Q",24,5000000), ("B", 70, 5000)]
# (<์ด๋ฆ> , <๋์ด> , <์ฌ์ฐ>) ์ด๋ผ๊ณ ํ๋ฉด
- ์์ ๋ฆฌ์คํธ์ฒ๋ผ ์ ๋ ฌํด์ผ ํ ๋ ๊ณ ๋ คํด์ผ ๋ง์ ๊ฒฝ์ฐ๊ฐ ์์๋๋ ํํํ์์ผ๋ก
key = lambda x: (x[0] , x[2])
lambda์์ ์ธ์์ฃผ๋ฉด ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ด๋ฆผ์ฐจ์์ผ๋ก ํ๊ณ ์ถ๋ค๋ฉด ๋ง์ด๋์ค ๋ถํธ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
key= lambda x: (-x[0], x[2])
๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ๊ฐ์ ๋์ด๋ผ๋ฉด ์ฌ์ฐ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
array.sort(key = lambda (x: x[1], -x[2]))
print(array)
>>> [('A', 18, 300000), ('Q', 24, 5000000), ('T', 24, 200000), ('F', 24, 10000), ('B', 70, 5000)]