๊ธ€

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type)(5) - Tuple, ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ๋ฒ•

์ด๋ฏธ์ง€
์ด์ „ ์‹œ๊ฐ„์—๋Š” Tuple์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด, ๊ทธ๋ฆฌ๊ณ  List์™€์˜ ๊ณตํ†ต์ , ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Tuple์˜ ๋‹ค์–‘ํ•œ ์“ฐ์ž„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠœํ”Œ์˜ ์ƒ์„ฑ ์ด์ „ ์‹œ๊ฐ„์—์„œ๋„ ์•Œ์•„ ๋ณธ ๊ฒƒ ์ฒ˜๋Ÿผ, ํŠœํ”Œ์€ ์†Œ๊ด„ํ˜ธ( () ) ์•ˆ์— ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. type (( 1 , 2 , 3 )) tuple ์†Œ๊ด„ํ˜ธ๋ฅผ ์”Œ์šฐ์ง€ ์•Š๊ณ ๋„ ์ˆซ์ž๋‚˜ ๋ฌธ์ž๋ฅผ ์‰ผํ‘œ๋ฅผ ํ†ตํ•ด ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํŠœํ”Œ์„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. a = 1 , 2 , 3 , "์‚ฌ" ,[ 5 ] print (a) ( 1 , 2 , 3 , "์‚ฌ" ,[ 5 ]) ๋น„๋ก ํŠœํ”Œ ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ์€ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์ง€๋งŒ, ํŠœํ”Œ ๋ผ๋ฆฌ์˜ ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ, ํ˜น์€ ํŠœํ”Œ์˜ ๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ์œผ๋กœ ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ํ•˜๊ธฐ๋ฅผ ํ•  ๊ฒฝ์šฐ ํŠœํ”Œ ๋ผ๋ฆฌ ํ•ฉ์ณ์ ธ์„œ ๋‚˜ํƒ€๋‚˜๋ฉฐ, ๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ์€ ํŠœํ”Œ๊ณผ intํ˜• ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ๋™์ผํ•œ ํŠœํ”Œ ๋‚ด์šฉ๋ฌผ์„ ๋ฐ˜๋ณต์‹œ์ผœ ์ƒˆ๋กœ์šด ํŠœํ”Œ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. a = ( 1 , 2 ) + ( 3 , 4 , 5 ) b = ( 10 , 11 , 12 ) * 2 print (a) print (b) ( 1 , 2 , 3 , 4 , 5 ) ( 10 , 11 , 12 , 10 , 11 , 12 ) ํŠœํ”Œ์˜ ํ•จ์ˆ˜ ํŠน์ • ๊ฐ’์ด ๋ช‡ ๋ฒˆ์งธ ์œ„์น˜์— ์žˆ๋Š” ์ง€, ํ˜น์€ ํŠน์ • ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š” ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. index์™€ count ํ•จ์ˆ˜์ธ๋ฐ, ๋ณ€์ˆ˜์•ˆ์— ํŠน์ • ์ž๋ฃŒํ˜•์˜ ๊ฐ’์„ ๋„ฃ๊ณ  <๋ณ€์ˆ˜>.<ํ•จ์ˆ˜>(<๊ฐ’>) ํ˜•ํƒœ๋กœ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์ž๋ฃŒํ˜• ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด์— ํ•จ์ˆ˜๋ฅผ ๋‹ฌ์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. a = ( 1 , 2 , 3 , 1 , 2 , 3 ) print (a . count( 3 )) print (( 2 , 2 , 2 , 100 ) . index( 100 )) 2 3 ...

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type)(5) - Tuple, ์†Œ๊ฐœ ๋ฐ List์™€์˜ ์ฐจ์ด์ 

์ด๋ฏธ์ง€
  ์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•(์ž๋ฃŒ ๊ตฌ์กฐ)์ธ List์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜• ์ค‘ ํ•˜๋‚˜์ธ Tuple ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Tuple(ํŠœํ”Œ) ํŠœํ”Œ์€ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์— ๋ณด๊ด€ํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ๋Œ€๊ด„ํ˜ธ([])๋กœ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฌถ๋Š” ๋ฐ ๋ฐ˜ํ•ด ํŠœํ”Œ์€ ์ผ๋ฐ˜ ๊ด„ํ˜ธ(())๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. type (( 1 , 2 , 3 )) tuple ํŠœํ”Œ ๋˜ํ•œ ๋ฆฌ์ŠคํŠธ ์ฒ˜๋Ÿผ ํŠœํ”Œ ์•ˆ์— ํŠœํ”Œ, ํŠœํ”Œ ์•ˆ์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. num_tuple = ( 1 , 2 ,( 1 , 2 , 3 )) print (num_tuple[ 2 ]) print ( type (num_tuple)) print ( type (num_tuple[ 2 ])) ( 1 , 2 , 3 ) < class ' tuple '> < class ' tuple '> ํŠœํ”Œ์€ ๋ฆฌ์ŠคํŠธ ์ฒ˜๋Ÿผ ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. num_tuple = ( 1 , 2 , 3 , 4 , 5 ) print (num_tuple[ 3 ]) print (num_tuple[ 2 : 4 ]) 4 ( 3 , 4 ) ์ง€๊ธˆ๊นŒ์ง€ ๋ณด๋ฉด ํŠœํ”Œ๊ณผ ๋ฆฌ์ŠคํŠธ๋Š” ํ‘œํ˜„ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค๋Š” ์  ๋นผ๊ณ ๋Š” ๊ธฐ๋Šฅ ์ƒ ๋ณ„ ์ฐจ์ด๊ฐ€ ์—†์–ด๋ณด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠœํ”Œ๊ณผ ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด๋Š” ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํŠœํ”Œ์€ ์ž์œ ๋กญ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์™€๋Š” ๋‹ฌ๋ฆฌ ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. n_ls = [ 1 , 2 , 3 ] n_tuple = ( 1 , 2 , 3 ) n_ls[ 2 ] = 100 print (n_ls) n_tuple[ 2 ] = 100 print (n_tuple) [ 1 , 2 , 100 ] TypeError : 'tuple' object...

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type) (4) - List, ์š”์†Œ ์ œ๊ฑฐ

์ด๋ฏธ์ง€
  ์ง€๊ธˆ๊นŒ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„  ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. pop, del ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” append, extend ๋•Œ ์ฒ˜๋Ÿผ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” pop ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํŒŒ์ด์ฌ ๋‚ด์žฅ ๋ช…๋ น์–ด์ธ del์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋จผ์ € pop์€ ์ด์ „ append ์ฒ˜๋Ÿผ, ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์€ ๋Œ€์ƒ ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‹ด๊ธด ๋ณ€์ˆ˜ ๋‹ค์Œ์— .pop()๋ฅผ ์ถ”๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. test = [ 1 , 2 , 3 , 4 , 5 ] test . pop() 5 append๋‚˜ extend ๋•Œ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ pop ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ์€ [1,2,3,4,5] ์•ˆ์— ์žˆ๋Š” ๊ฐ’ 5๋ฅผ ์ถœ๋ ฅํ•ด์ค€ ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ, ์ด๋Œ€๋กœ ์–ด๋–ค ์š”์†Œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š” ์ง€ ๊ฐ์ด ์žกํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. test ๋ณ€์ˆ˜์— ๋‹ด๊ธด ๋ฆฌ์ŠคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š” ์ง€ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค. print (test) [ 1 , 2 , 3 , 4 ] ํ™•์ธํ•ด๋ณธ ๊ฒฐ๊ณผ ๋งจ ๋’ค์— ์žˆ๋˜ ์ˆซ์ž 5๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pop์€ ์–ด๋– ํ•œ ํŒŒ๋ผ๋ฉ”ํ„ฐ(์ธ์ž)๋„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋””ํดํŠธ๋กœ ๋งจ ๋’ค์˜ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ฒŒ ์„ค์ • ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ํ•ด๋ด…์‹œ๋‹ค. test = [ 1 , 2 , 3 , 4 , 5 ] test . pop( 0 ) print (test) [ 2 , 3 , 4 , 5 ] pop์˜ ์ธ์ž๋กœ์„œ 0์„ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ ๋งจ ์•ž ์ธ์ž๋ฅผ ์ œ๊ฑฐํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ pop์€ ๋ฆฌ์ŠคํŠธ์—์„œ ์›ํ•˜๋Š” ์œ„์น˜์˜ ์š”์†Œ๋ฅผ ์†์‰ฝ๊ฒŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ง€์ •ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋‹ˆ ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”. test = [ 1 , 2 , 3 , 4 , 5 ] test . pop( 100 ) print (test) ...

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type) (3) - List, ์š”์†Œ ์ถ”๊ฐ€

์ด๋ฏธ์ง€
์ด์ „ ํฌ์ŠคํŠธ์—์„œ ๋ฆฌ์ŠคํŠธ์˜ ์„ค๋ช…๊ณผ ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ์ถ”๊ฐ€์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ๋ฆฌ์ŠคํŠธ ์‚ฌ์น™์—ฐ์‚ฐ ๊ฐ„๋‹จํ•œ ์‚ฌ์น™์—ฐ์‚ฐ์œผ๋กœ ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค. ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฆฌ์ŠคํŠธ์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ด์–ด ๋ถ™์ด๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. a = [ 1 ] a = a + [ 2 ] print (a) a = [ - 1 , 0 ] + a print (a) [ 1 , 2 ] [ - 1 , 0 , 1 , 2 ] ์ƒˆ๋กœ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋‚ด๋ถ€ ์š”์†Œ๋กœ 1์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฆฌ์ŠคํŠธ ๋’ค์— [2]๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ [1, 2]๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๊ณ , [1, 2] ์•ž์— [-1, 0] ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ [-1, 0, 1, 2] ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๋ฆฌ์ŠคํŠธ์— ๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•ด๋ด…์‹œ๋‹ค. a * 2 [ - 1 , 0 , 1 , 2 , - 1 , 0 , 1 , 2 ] [-1, 0, 1, 2] ๊ฐ€ ํ•œ ๋ฒˆ ๋” ๋ถ™๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฆฌ์ŠคํŠธ๋Š” ์‚ฌ์น™์—ฐ์‚ฐ์œผ๋กœ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋”ํ•˜๊ธฐ์˜ ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ ๋ผ๋ฆฌ๋งŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ณฑํ•˜๊ธฐ์˜ ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์™€ ์ •์ˆ˜ํ˜• ์ˆซ์ž๋กœ๋งŒ ์—ฐ์‚ฐ ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋งŽ์€ ์ œ์•ฝ์ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฆฌ์ŠคํŠธ๋Š” ๋นผ๊ธฐ๋‚˜ ๋‚˜๋ˆ„๊ธฐ๋Š” ์•„์˜ˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ํŠน์ง• ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. append, extend, insert ๋ฆฌ์ŠคํŠธ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ œ์ผ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ธ append ์™€ extend, insert์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ๋จผ์ € append๋Š” ๋ฆฌ์ŠคํŠธ class๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ, (์‰ฝ๊ฒŒ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋“ค์€ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ์ •๋„๋กœ๋งŒ ์ดํ•ดํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.) ๋ฆฌ์ŠคํŠธ์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ด…์‹œ๋‹ค. a = [...

[Serverless Framework with Python] ์ •๋ณด ๋ชจ์Œ - opencv-python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ aws lambda์— ์—…๋กœ๋“œํ•˜๊ธฐ

์ด๋ฏธ์ง€
์ตœ๊ทผ์— ์—…๋ฌด์— ์“ฐ๊ธฐ ์œ„ํ•ด, opencv-python์„ aws lambda์— ์ด์‹ํ•˜๋ ค๊ณ  ๋‚œ๋ฆฌ๋ฅผ ์ณค์Šต๋‹ˆ๋‹ค. ๊ธธ์ง„ ์•Š์ง€๋งŒ ์•ฝ ์ดํ‹€ ์ •๋„ ๊ฐ๊ณ ์˜ ๋…ธ๋ ฅ์„ ํ•œ ๋์— ๊ฒจ์šฐ ์ด์‹ํ•˜๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์•„๋ฌด๋ž˜๋„ ํŒจํ‚ค์ง€ ์ข…์† (ํ•ด๋‹น lambda ํŒจํ‚ค์ง€์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)์ด ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์•„ ๋ ˆ์ด์–ด ๋ฐฉ์‹๋ณด๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ opencv-python ๋“ฑ์ง€์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตณ์ด Docker ํ‚ค๊ณ  ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„๋ฆฌ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋งŒ์„ ํ™œ์šฉํ•ด ๋ฐ”๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๋“ฑ (๋ฌผ๋ก  ์„œ๋ฒ„๋ฆฌ์Šค ํ”„๋ ˆ์ž„์›Œํฌ ์ƒ์—์„œ Docker๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฑฐ์ง€๋งŒ์š”) ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ( ํ•ด๋‹น ์ž‘์—…์€ pycharm python 3.8 serverless Framework 1.79 ์—์„œ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ) ※ ์ด๋ฒˆ ํฌ์ŠคํŠธ์˜ ๋‚ด์šฉ์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๊ผญ docker๋ฅผ ์„ค์น˜ํ•œ ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค! ์„œ๋ฒ„๋ฆฌ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์“ฐ๋ฉด์„œ, ๋ณ„ ์ƒ๊ฐ์—†์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ ํ•œ ํ›„ (ํŒŒ์ด์ฌ ๊ฐ™์€ ๊ฒฝ์šฐ์—” pip ๋ฐฉ์‹์ด ๋˜๊ฒ ์ฃ ) ์ฝ”๋“œ๋ฅผ ๋ƒ…๋‹ค ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•˜๋ฉด aws lambda ์ƒ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ๋œจ๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฝค๋‚˜ ์ž์ฃผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ €์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ์šด์˜์ฒด์ œ์™€ ์•„๋งˆ์กด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ƒ์˜ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ธ๋ฐ์š”, ์•„๋งˆ์กด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์˜ ์šด์˜์ฒด์ œ๋Š” linux์ด๊ณ  ์ œ๊ฐ€ ์“ฐ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์šด์˜์ฒด์ œ๋Š” ์ฃผ๋กœ ์œˆ๋„์šฐ๋‚˜ ๋งฅ OS ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋งŒ์ผ pip install ๋ธ”๋ผ๋ธ”๋ผ.. ์ด๋Ÿฐ์‹์œผ๋กœ ๋ณ„ ์กฐ์น˜ ์—†์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์šด์˜์ฒด์ œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„ค์น˜ ๋˜๋ฉฐ, ๋ง‰์ƒ aws lambda๋กœ ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ”์„ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์ง€ ๋ชปํ•ด ์—๋Ÿฌ๋ฅผ ๋ฑ‰์–ด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž‘๋™ ๋ฐฉ์‹์ด๋‚˜ ๊ฒฝ๋กœ ๋“ฑ์ด OS ๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ...

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type) (2) - List, ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ

์ด๋ฏธ์ง€
  ์ด์ „์— ๋‹จ์ผ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ด…์‹œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌถ์Œ(์ž๋ฃŒ๊ตฌ์กฐ) ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•์œผ๋กœ๋Š” List, Tuple, Set, Dictionary ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ๋Š” ์ „๋ฌธ์ ์ธ ์šฉ์–ด๋กœ ์ž๋ฃŒ๊ตฌ์กฐ ๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์œ„ํ‚คํ”ผ๋””์•„ ์„ค๋ช…์— ์˜ํ•˜๋ฉด, "์ž๋ฃŒ ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ๋ชจ์ž„, ๋˜ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„, ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋‚˜ ๋ช…๋ น์„ ์˜๋ฏธ" ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋‹จ ๋ฐ์ดํ„ฐ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ํ˜•ํƒœ๋ง๊ณ ๋„, ๊ทธ ๋ฐ์ดํ„ฐ๋“ค์ด ์–ด๋–ค ๊ด€๊ณ„๋กœ ๋ฌถ์—ฌ์žˆ๋Š”์ง€ , ๊ทธ ๋ฐ์ดํ„ฐ์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ์— ๋Œ€ํ•œ ๊ฐœ๋…๋„ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ์—ฌ๊ธฐ์„œ๋Š” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ์ด๋ผ๊ณ  ๋ช…๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์œ„ํ‚คํ”ผ๋””์•„์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ„ํ‚คํ”ผ๋””์•„-์ž๋ฃŒ๊ตฌ์กฐ : https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0 ๋ฐ์ดํ„ฐ ๋ฌถ์Œ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฐ ๋ณด๊ด€ํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ณตํ†ต์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‚˜, ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ชจ์•„๋‘๊ณ  ์žˆ๋А๋ƒ ์— ๋”ฐ๋ผ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ . List(๋ฆฌ์ŠคํŠธ) ๋จผ์ € List(๋ฆฌ์ŠคํŠธ) ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ํ˜•ํƒœ์˜ ์ œ์ผ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ๋Œ€๊ด„ํ˜ธ([])๊ฐ€ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ์‹ธ๊ณ , ์‰ผํ‘œ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๋ด…์‹œ๋‹ค, type ([ 1 , 2 ...

[Python, ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ์ž๋ฃŒํ˜•(Data Type) (1) - ์ž๋ฃŒํ˜•, ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž

์ด๋ฏธ์ง€
์ž๋ฃŒํ˜•์ด๋ž€? ์ž๋ฃŒํ˜•(Data Type)์ด๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ์ปดํ“จํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ๊ธ‰ํ•˜๋Š” ๋ถ„๋ฅ˜ ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ๋ญ”๊ฐ€ ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ ๋‹ค๊ณ  ํ•˜๋ฉด ์ฃผ๋กœ ์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ๊ธ‰ํ•˜๊ฒŒ ๋  ๊ฒ๋‹ˆ๋‹ค. ํ˜น์€ ์–ด๋–ค ์‚ฌ์ดํŠธ์—์„œ ์•„์ด๋”” / ํŒจ์Šค์›Œ๋“œ๊ฐ€ ์ •๋ง ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด, ์•„์ด๋”” / ํŒจ์Šค์›Œ๋“œ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•ด์„œ ์ ‘์† ์‹œ์ผœ์ค„ ์ง€ ๋ง์ง€ ์ƒ๊ฐํ•˜๊ฒ ์ฃ . ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์ด์šฉํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์ฃ . ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๊ณ„์ •์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.   ์šฐ๋ฆฌ๊ฐ€ ์ˆซ์ž / ๋ฌธ์ž ์ด๋ ‡๊ฒŒ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋“ค์˜ ํŠน์„ฑ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์ปดํ“จํ„ฐ๋„ ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ฌ๋ฆฌ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ๊ธ‰ํ•˜๋Š” ์ผ๋ จ์˜ ๋ถ„๋ฅ˜, ํ˜น์€ ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ ์„ ์ž๋ฃŒํ˜•์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์•„๊นŒ ์œ„์—์„œ ์ปดํ“จํ„ฐ์™€ 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด'๋ฅผ ํ•จ๊ป˜ ์–ธ๊ธ‰ํ–ˆ์—ˆ์ฃ . ์ปดํ“จํ„ฐ์™€ ์‚ฌ๋žŒ์‚ฌ์ด์—์„œ ์–ธ์–ด๋ฅผ ํ†ต์—ญํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(์—ฌ๊ธฐ์„œ๋Š” ํŒŒ์ด์ฌ์ด ๋˜๊ฒ ์ฃ ) ๋˜ํ•œ ๊ฐœ๋… ์ž์ฒด๋Š” ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ†ต์—ญ์„ ์‹œ๋„ํ•  ๋•Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋งˆ๋‹ค ์ •ํ•ด์ง„ ๋ฃฐ ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ์–ธ์–ด๋งˆ๋‹ค ์ž๋ฃŒํ˜•์˜ ์„ค์ •์ด ์•ฝ๊ฐ„ ์”ฉ ๋‹ค๋ฅด๊ฒŒ ์ œ๊ณต ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด C๋‚˜ Java์—์„œ๋Š” ์‹ค์ˆ˜(์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ์ˆ˜)๋ฅผ ์ทจ๊ธ‰ํ•  ๋•Œ Float์ด๋‚˜ Double ํ˜•ํƒœ๋กœ ์†Œ์ˆซ์  ์ž๋ฆฌ์˜ ๊ธธ์ด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰ํ•˜์ง€๋งŒ, ํŒŒ์ด์ฌ์—์„œ๋Š” ์‹ค์ˆ˜๋ฅผ ๋ชจ๋‘ float์œผ๋กœ ํ†ต์ผํ•ด์„œ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ ๋ง๊ณ ๋„ ์ž๋ฃŒํ˜• ์ธก๋ฉด์—์„œ ๋งŽ์€ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฐ ํŠน์ง•์œผ๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋งˆ๋‹ค ์žฅ๋‹จ์ ์ด ์กด์žฌํ•˜๊ธด ํ•œ๋‹ค๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ๊ตณ์ด ์•Œ ํ•„์š”๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (๊ทธ๋ž˜๋„ ์ข€ ๋” ํŒŒ...