๐Ÿ“œ Language/[python]

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ธ๋ฑ์Šค์™€ ์š”์†Œ ๋™์‹œ ์ˆœํšŒ - enumerate

enumerate? ํŒŒ์ด์ฌ์—์„œ for๋ฌธ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ๊ฐ์ฒด ์ˆœํšŒํ•  ๋•Œ, enumerate๋กœ ์š”์†Œ์˜ ์ˆœ์„œ(์ธ๋ฑ์Šค)์™€ ์š”์†Œ๋ฅผ ๋™์‹œ์— ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ๋ง๊ณ  ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ์—๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐ˜๋ณต๋ฌธ(for ๋ฌธ) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž. Arr = ['Vaundy', 'Kaze', 'Ayase'] ํŒŒ์ด์ฌ์—์„œ for๋ฌธ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค. for value in Arr: print(value) Vaundy Kaze Ayase ๋˜ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ˆœํšŒํ•  ๋•Œ๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. for i in range(len(Arr)): print(i) 0 1 2 ๊ทธ๋Ÿผ ์š”์†Œ์™€ ์ธ๋ฑ์Šค๋ฅผ ๋™์‹œ์— ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ..

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ์—ฌ๋Ÿฌ ํŒŒ์ผ ์ด๋ฆ„ ํ•œ๋ฒˆ์— ๋ณ€๊ฒฝํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ(feat. os.rename)

๊ณ„๊ธฐ YOLOํ•™์Šต์„ ์œ„ํ•ด ์ด๋ฏธ์ง€ ๋ผ๋ฒจ๋ง์„ ํ•˜๋‹ˆ, ์ด๋ฏธ์ง€ ์ˆ˜๋ฐฑ ์žฅ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์•ผ ๋˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค. ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜์ง€๋งŒ ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ณ  ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ํŒŒ์ด์ฌ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฑฐ ๊ฐ™์•„, ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ๋ดค๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด๋ผ ํ•˜๊ธฐ์—” ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ์งง๊ธด ํ•˜์ง€๋งŒ, ๋ญ ๋‚ด๊ฐ€ ํ•„์š”์— ์˜ํ•ด ๋งŒ๋“  ๊ฑฐ๋‹ˆ ์œ ์˜๋ฏธํ•˜์ง€ ์•Š์„๊นŒ?๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ฝ”๋“œ import os #๊ธฐ์กด ์‚ฌ์ง„ ๋ฐฑ์—… ํ•„์ˆ˜!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #๊ธฐ์กด์— ์žˆ๋Š” ์‚ฌ์ง„๋“ค์„ ์‚ญ์ œ๋จ #๊ธฐ์กด ํŒŒ์ผ ๊ฒฝ๋กœ folder_path = 'C:\\Users' #์ƒˆ๋กœ ์ €์žฅ ๊ฒฝ๋กœ (์ •ํ™•ํžˆ ๋งž์•„์•ผ ํ•จ) dst_path = 'C:\\Users' #ํด๋”์•ˆ์—์žˆ๋Š” ํŒŒ์ผ๋“ค ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ file_names = os.listdir(folder_pat..

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ์ฝฐ์ธ(Quine) ํ”„๋กœ๊ทธ๋žจ

์ฝฐ์ธ ์ฝฐ์ธ(quine)์€ ์ž…๋ ฅ ์—†์ด ์ž๊ธฐ ์ž์‹ ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๊ฐ€ print('Hello world') ๋ผ๋ฉด ์ถœ๋ ฅ๋„ print('Hello world')๋กœ ๋‚˜์™€์•ผ ํ•œ๋‹ค. ๋‹ค์Œ์€ ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์„ฑ๋œ Quine ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. exec(s:='print("exec(s:=%r)"%s)') ๋˜๋Š” n = 'n=%r\nprint(n%%n)' print(n%n)

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] dis๋ชจ๋“ˆ๋กœ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํ™•์ธ - dis

๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ž€? ๋ฐ”์ดํŠธ ์ฝ”๋“œ(Byte code)๋Š” ๊ณ ๊ธ‰ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ƒ๋จธ์‹  ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•œ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” else์™€ elif ์˜ ์‹œ๊ฐ„์ฐจ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด dis ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•จ. import dis def Func_else(n): if n % 2 == 0: return True else: return False def Func_elif(n): if n % 2 == 0: return True elif n % 2 == 1: return False dis.dis(Func_else) print('--------------------------------------------------') dis.dis(Func_elif) ๊ฒฐ๊ณผ: 4 0 LOAD_FAST 0 (n..

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ํŒŒ์ด์ฌ ์ฝ”๋“œ ์‹คํ–‰ ์ธก์ • - time

import time import random arr = [] for _ in range(100000): arr.append(random.randint(1,10000)) start_time = time.time() # ์ธก์ • ์‹œ์ž‘ arr.sort() end_time = time.time() # ์ธก์ • ๋ print('time:',end_time - start_time) ์ถœ๋ ฅ: time: 0.012936830520629883 ๋‹จ์œ„๋Š” ์ดˆ

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] if __name__ == "__main__"

if __name__ == "__main__" ์ง์ ‘ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ, ๋ฉ”์ธ ํ•จ์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค. ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด if __name__ == "__main__"์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ def olleh(): print("๋…•์•ˆ") if __name__ == "__main__": olleh() ์‹คํ–‰ ๊ฒฐ๊ณผ ๋…•์•ˆ if __name__ == "__main__"์„ ์•ˆ์ผ์„๋•Œ ๋‹ค์Œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. # testmodule.py def joah(cat): print(cat +' ์ข‹์•„') joah('ํ•˜๋ฃจ') # test.py import testmodule testmodule.joah('๋‚˜๋ฃจ') testmodule.py์— joah๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  test.py์— imp..

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] ์ˆœ์—ด๊ณผ ์กฐํ•ฉ - permutations, combinations

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ, ์ˆœ์—ด๊ณผ ์กฐํ•ฉ ๊ฐœ๋…์ด ํ•„์š”ํ•œ ๋ฌธ์ œ๋“ค์ด ์žˆ๋‹ค. itertools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. itertools ํŒŒ์ด์ฌ์— ์žˆ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ๋‹ค์–‘ํ•œ iterator๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ์ค‘ permutations(), combinations()๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค๋ฃฌ๋‹ค. permutations() from itertools import permutations arr = [1, 2, 3, 4] for p in permutations(arr, 2): print(p) ๊ฒฐ๊ณผ: (1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2, 4) (3, 1) (3, 2) (3, 4) (4, 1) (4, 2) (4, 3) tuple ํ˜•ํƒœ๋กœ ๋‚˜์˜จ๋‹ค. combinati..

๐Ÿ“œ Language/[python]

[ํŒŒ์ด์ฌ] sort (feat. lambda)

ํŒŒ์ด์ฌ์—๋Š” ๊ธฐ๋ณธ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(NlogN), ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ ์‚ฝ์ž… ์ •๋ ฌ์˜ ์•„์ด๋””์–ด๋กœ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์•„๋ž˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋“ค์ด๋‹ค. lambda๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. a.reverse() # a๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์Œ a.sort() # a๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ a.sort(reverse=True) # a๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ a.sort(key = len) # a๋ฅผ key ์˜ต์…˜์— ๋”ฐ๋ผ ์ •๋ ฌ b = a.sorted() # sorted ์ •๋ ฌํ•œ๊ฒƒ์„ ๋ฐ˜ํ™˜ A = [[2,3],[1,2],[5,1],[2,1],[1,5]] C = sorted(A, key = lambda x : x[0]) #[[1, 2], [1, 5], [2, 3], [2, 1], [..

์ œ๋ด‰์•„
'๐Ÿ“œ Language/[python]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก