(Python 3-2๊ฐ) Pythonic code
210803
Pythonic Code
ํ์ด์ฌ ์คํ์ผ์ ์ฝ๋ฉ ๊ธฐ๋ฒ
ํ์ด์ฌ ํน์ ์ ๋ฌธ๋ฒ์ ํ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ํํํจ
๊ทธ๋ฌ๋ ๋ ์ด์ ํ์ด์ฌ ํน์ ๋ ์๋, ๋ง์ ์ธ์ด๋ค์ด ์๋ก์ ์ฅ์ ์ ์ฑ์ฉ
๊ณ ๊ธ ์ฝ๋๋ฅผ ์์ฑ ํ ์๋ก ๋ ๋ง์ด ํ์ํด์ง
>>> colors = ['red', 'blue', 'green', 'yellow']
>>> result = ''
>>> for s in colors:
result += s
>>> colors = ['red', 'blue', 'green', 'yellow']
>>> result = ''.join(colors)
>>> result
'redbluegreenyellow'
์ ์(1-4)๋ณด๋ค ํ์(6-7)๊ฐ ๋ ํ์ดํ ๋ํ ๋ฐฉ๋ฒ
Split
string type์ ๊ฐ์ โ๊ธฐ์ค๊ฐโ์ผ๋ก ๋๋ ์ List ํํ๋ก ๋ณํ
Join
String์ผ๋ก ๊ตฌ์ฑ๋ list๋ฅผ ํฉ์ณ ํ๋์ string์ผ๋ก ๋ฐํ
List Comprehension
๊ธฐ์กด List ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ๋ค๋ฅธ List๋ฅผ ๋ง๋๋ ๊ธฐ๋ฒ
ํฌ๊ด์ ์ธ List, ํฌํจ๋๋ ๋ฆฌ์คํธ๋ผ๋ ์๋ฏธ๋ก ์ฌ์ฉ๋จ
ํ์ด์ฌ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ ์ค ํ๋
์ผ๋ฐ์ ์ผ๋ก for + append ๋ณด๋ค ์๋๊ฐ ๋น ๋ฆ
Enumerate
list์ element๋ฅผ ์ถ์ถํ ๋ ๋ฒํธ๋ฅผ ๋ถ์ฌ์ ์ถ์ถ
Zip
๊ฐ์ list์ ๊ฐ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ถ์ถํจ
Lambda
ํจ์ ์ด๋ฆ ์์ด, ํจ์์ฒ๋ผ ์ธ ์ ์๋ ์ต๋ช ํจ์
์ํ์ ๋๋ค ๋์์์ ์ ๋ํจ
# General Function
def f(x, y):
return x + y
print(f(1, 4))
# Lmabda Function
f = lambda x, y: x + y
print(f(1, 4))
Python 3๋ถํฐ๋ ๊ถ์ฅํ์ง๋ ์์ผ๋ ์ฌ์ ํ ๋ง์ด ์ฐ์
์ ๊ถ์ฅํ์ง ์๋๊ฐ?
์ด๋ ค์ด ๋ฌธ๋ฒ
ํ ์คํธ์ ์ด๋ ค์
๋ฌธ์ํ docstring ์ง์ ๋ฏธ๋น
์ฝ๋ ํด์์ ์ด๋ ค์
์ด๋ฆ์ด ์กด์ฌํ์ง ์๋ ํจ์์ ์ถํ
Map
๋ ๊ฐ ์ด์์ list์๋ ์ ์ฉ ๊ฐ๋ฅ
ex = [1,2,3,4,5]
print(list(map(lambda x: x+x, ex)))
>>> [2, 4, 6, 8, 10]
Reduce
map function๊ณผ ๋ฌ๋ฆฌ list์ ๋๊ฐ์ ํจ์๋ฅผ ์ ์ฉํด์ ํตํฉ
from functools import reduce
print(reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]))
>>> 15
Function passing arguments
Keyword arguments
ํจ์์ ์ ๋ ฅ๋๋ parameter์ ๋ณ์๋ช ์ ์ฌ์ฉ, arguments๋ฅผ ๋๊น
def print_somthing(my_name, your_name):
print("Hello {0}, My name is {1}".format(your_name, my_name))
print_somthing(your_name="TEAMLAB", my_name="Sungchul")
Default arguments
parameter์ ๊ธฐ๋ณธ ๊ฐ์ ์ฌ์ฉ, ์ ๋ ฅํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ ์ถ๋ ฅ
def print_somthing_2(my_name, your_name="TEAMLAB"):
print("Hello {0}, My name is {1}".format(your_name, my_name))
print_somthing_2("Sungchul", "TEAMLAB")
print_somthing_2("Sungchul")
Variable-length
๊ฐ์๊ฐ ์ ํด์ง์ง ์์ ๋ณ์๋ฅผ ํจ์์ parameter๋ก ์ฌ์ฉํ๋ ๋ฒ
Keyword arguments์ ํจ๊ป, argument ์ถ๊ฐ๊ฐ ๊ฐ๋ฅ
Asterisk(*) ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ parameter๋ฅผ ํ์ํจ
์ ๋ ฅ๋ ๊ฐ์ tuple type์ผ๋ก ์ฌ์ฉํ ์ ์์
๊ฐ๋ณ์ธ์๋ ์ค์ง ํ ๊ฐ๋ง ๋งจ ๋ง์ง๋ง parameter ์์น์ ์ฌ์ฉ๊ฐ๋ฅ
๊ฐ๋ณ์ธ์๋ ์ผ๋ฐ์ ์ผ๋ก *args๋ฅผ ๋ณ์๋ช ์ผ๋ก ์ฌ์ฉ
def asterisk_test(a, b, *args):
return a+b+sum(args)
print(asterisk_test(1, 2, 3, 4, 5))
Keyword variable-length
Parameter ์ด๋ฆ์ ๋ฐ๋ก ์ง์ ํ์ง ์๊ณ ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ
asterisk(*) ๋๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ parameter๋ฅผ ํ์ํจ
์ ๋ ฅ๋ ๊ฐ์ dict type์ผ๋ก ์ฌ์ฉํ ์ ์์
๊ฐ๋ณ์ธ์๋ ์ค์ง ํ ๊ฐ๋ง ๊ธฐ์กด ๊ฐ๋ณ์ธ์ ๋ค์์ ์ฌ์ฉ
def kwargs_test_3(one,two, *args, **kwargs):
print(one+two+sum(args))
print(kwargs)
kwargs_test_3(3,4,5,6,7,8,9, first=3, second=4, third=5
Last updated
Was this helpful?