π€ λ¬Έμ μν©
>>> a = [1, 2, 3, 4, 5]
12345
- μμ μ«μν 리μ€νΈ aλ₯Ό λ¨μΌ κ°μΌλ‘ λ³ν©νμ¬ '12345'λΌλ κ°μ μ»κ³ μΆλ€!
- μ΄λ»κ² ꡬν μ μμκΉ?
π νλ. forλ¬Έ μ΄μ©νκΈ°
>>> ''.join(str(x) for x in a)
12345
- μμ λ³μ(x)κ° νμνλ€.
- κ°λ
μ±μ΄ μ’ λ¨μ΄μ§λ€.
β λ. map μ΄μ©νκΈ°
>>> ''.join(map(str, a))
12345
- strλ‘ λ°νν΄μ€μ μ½λ λ΄μμ μμνμ¬ κ°λ
μ±μ΄ μ’λ€.
- μμ λ°©λ²κ³Όλ λ€λ₯΄κ² μμ λ³μ(x)λ₯Ό μ¬μ©νμ§ μμ κΉλνλ€.
from functools import *
reduce(lambda x, y : 10 * x + y, a, 0)
12345
reduce()
: reduce(μ§κ³ ν¨μ, μν κ°λ₯ν λ°μ΄ν°(, μ΄κΈ°κ°))
- μ§κ³ ν¨μλ λκ°μ μΈμλ₯Ό λ°μμΌ νλ€. 첫λ²μ§Έ μΈμλ λμ κ°(accumulator), λλ²μ§Έ μΈμλ νμ¬κ°(current value)κ° λμ΄μ€κ² λλ€.
- λμ κ°μ ν¨μ μ€νμ μμλΆν° λκΉμ§ κ³μν΄μ μ¬μ¬μ©λλ κ°μ΄κ³ , νμ¬κ°μ 루ν λλ©΄μ κ³μν΄μ λ°λλ κ°μ΄λ€.
- μ¦ λ°ν κ°μ μ«μνμ΄λ€.
- μμ μμ λ¨κ³λ³λ‘ λλ μ ꡬν΄λ³΄λ©΄ μλμ κ°λ€.
>>> a = [1, 2, 3, 4, 5]
>>> xλ λμ κ°, yλ (μννλ) νμ¬κ°
1. x = 0, y = 1
10 * x + y = 1, x = 1
2. x = 1, y = 2
10 * x + y = 12, x = 12
3. x = 12, y = 3
10 * x + y = 123, x = 123
4. x = 123, y = 4
10 * x + y = 1234, x = 1234
5. x = 1234, y = 5
10 * x + y = 12345, x = 12345
- μ΄λ¬ν μ리λ₯Ό μ΄μ©νλ©΄ λ€λ₯Έ μ°μ°λ€λ μμ©μ΄ κ°λ₯νλ€.
reduce(lambda x, y : x + y, a)
reduce(lambda x, y : x * y, a)