๐Ÿ“’ Language/๐Ÿ“ Python

[Python] sort( ) vs sorted( )

dana4056 2021. 9. 22. 17:39
320x100

ํŒŒ์ด์ฌ์„ ๋ฐฐ์šฐ๊ณ  ๋‚œ ํ›„ n๋…„์งธ ํ—ท๊ฐˆ๋ฆฌ๋Š” sort()์™€ sorted() ํ•จ์ˆ˜... 

๋‘ ํ•จ์ˆ˜ ๋‹ค ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋งค๋ฒˆ ์ฐพ์•„๋ด๋„ ๊ทธ๋•Œ ์“ฐ๊ณ  ๋‚˜๋ฉด ๋‹ค์‹œ ๊นŒ๋จน์–ด์„œ ํฌ์ŠคํŒ…์„ ์ข€ ํ•˜๋ฉด ๋‚ซ๊ฒ ๋‹ค ์‹ถ๋‹ค

 

์š”์•ฝ ์ •๋ฆฌ

sort( )์™€ sorted( ) ๊ณตํ†ต์ 

๋‘˜ ๋‹ค ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜๋Š”๋ฐ ์“ฐ์ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์— ๋‚˜์™€์žˆ๋Š” ํ•จ์ˆ˜๋“ค์˜ ์›ํ˜•์„ ๋ณด๋ฉด key์™€ reverse๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, key๋Š” ์ •๋ ฌ ํ”„๋กœ์„ธ์Šค ์ „์— ๊ฐ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ๋Œ€ํ•ด ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋‹ค.  ์˜ˆ๋ฅผ ๋“ค์–ด key = str.lower๋กœ ์ง€์ •ํ•˜๋ฉด ์˜๋ฌธ์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๋น„๊ตํ•œ๋‹ค. (key ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„) ์ •๋ ฌ ํ”„๋กœ์„ธ์Šค ์ „์— str.lower๋ฅผ ํ˜ธ์ถœํ•ด ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์›์†Œ๋“ค์— ๋Œ€ํ•ด ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ์‹œ์ผœ์คฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. reverse๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ• ์ง€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ง€ ์ง€์ •ํ•ด์ค€๋‹ค. ๋””ํดํŠธ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ณ  reverse=True๋กœ ์„ค์ •ํ•˜๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค. 

 

sort( )

sort( ) ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์˜ ๋ฉ”์„œ๋“œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ'๋งŒ' ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๊ณ  ์ •๋ ฌ ์‹œ ๊ณต๊ฐ„ ์ ˆ์•ฝ์„ ์œ„ํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ์ž๋ฆฌ์—์„œ ์ˆ˜์ •ํ•œ๋‹ค. ์ฆ‰, ์›๋ณธ์„ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค

 

sorted( )

sorted( ) ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ iterable ํ•œ ๊ฐ์ฒด(ex. ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ ๋“ฑ)๋ฅผ ๋ชจ๋‘ ์ •๋ ฌ์‹œ์ผœ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  sort( )์™€ ๋‹ค๋ฅด๊ฒŒ ์›๋ณธ์„ ๊ฑด๋“ค์ง€ ์•Š๊ณ  ์ƒˆ๋กœ ์ •๋ ฌ๋œ ๊ฐ์ฒด๋ฅผ '๋ฆฌ์ŠคํŠธ'๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฆ‰, ํŠœํ”Œ์„ ์ •๋ ฌํ•˜๋”๋ผ๋„ ๋ฆฌ์ŠคํŠธํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋‹ˆ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

 

listA = [7, 2, 9, 8, 1, 5]

sorted(listA)
print(listA)			# ๊ฒฐ๊ณผ: [7, 2, 9, 8, 1, 5]   ---> ์›๋ณธ์€ ๊ทธ๋Œ€๋กœ 

listB = sorted(listA)
print(listB)			# ๊ฒฐ๊ณผ: [1, 2, 5, 7, 8, 9]   ---> ๋ฐ˜ํ™˜๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋กœ ์ €์žฅ

listA.sort( ) 
print(listA)                    # ๊ฒฐ๊ณผ: [1, 2, 5, 7, 8, 9]   ---> ์›๋ณธ ์ •๋ ฌ


tupleA = (2, 9, 4, 7, 3, 6)

tupleB = sorted(tupleA)
print(tupleB)                  # ๊ฒฐ๊ณผ: [2, 3, 4, 6, 7, 9]   ---> ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜

tupleA.sort()                  # ERROR: (sort()ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•๋งŒ ์ •๋ ฌ ๊ฐ€๋Šฅ)

 

 

https://docs.python.org/ko/3/library/stdtypes.html?highlight=sort#list.sort 

 

๋‚ด์žฅํ˜• — Python 3.9.7 ๋ฌธ์„œ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ๋‚ด์žฅ๋œ ํ‘œ์ค€ํ˜•์— ๊ด€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋‚ด์žฅ ์œ ํ˜•์€ ์ˆซ์ž, ์‹œํ€€์Šค, ๋งคํ•‘, ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค ๋ฐ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋Š” ๊ฐ€๋ณ€์ž…๋‹ˆ๋‹ค. ์ œ์ž๋ฆฌ์—์„œ ๋ฉค๋ฒ„

docs.python.org

https://docs.python.org/ko/3/library/functions.html?highlight=sorted#sorted 

 

๋‚ด์žฅ ํ•จ์ˆ˜ — Python 3.9.7 ๋ฌธ์„œ

๋‚ด์žฅ ํ•จ์ˆ˜ ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—๋Š” ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ํ•จ์ˆ˜์™€ ํ˜•์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. abs(x) ์ˆซ์ž์˜ ์ ˆ๋Œ“๊ฐ’์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. ์ธ์ž๋Š” ์ •์ˆ˜, ์‹ค์ˆ˜ ๋˜๋Š” __

docs.python.org

 

๋ฐ˜์‘ํ˜•