(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?