PyFunction에서 파이톤도 루비와 JS처럼 방법체인을 통해 쉽게 배열할 수 있다

TL;DR


PyFunction도 라이브러리만 넣으면 쉽게 배열할 수 있다고 했어요.

주의 사항


이 기사는 기본적으로 파이썬 3의 이야기다.

설치 방법

pip3 install pyfunctional

사용 예


파이썬의 정렬 작업은 루비나 JS와 달리 어렵다.
예를 들어 0에서 9까지의 숫자를 2곱하기 짝수로 배열하려고 한다.
(네 제목은 잘 생각했어. 너무 신경 쓰지 마.)

예: 루비


루비라면 다음과 같은 내용을 쓸 수 있다.
너무 편했으면 좋겠어요
numbers = (0..9).select { |n|
  n % 2 == 0
}.map { |n|
  n * n
}

print numbers
# [0, 4, 16, 36, 64]

예: JavaScript


JavaScript라면 이렇게 될 거야.
JavaScript에서도 번호 함수를 작성하십시오.
var numbers = [...Array(10).keys()]
                .filter(n => n % 2 == 0)
                .map(n => n * n)

console.log(numbers)
// [0, 4, 16, 36, 64]

예: 파이썬


python은 다음과 같습니다.
매워...
numbers = []
for n in range(10):
  if (n % 2 == 0):
    numbers.append(n * n)

print(numbers)
# [0, 4, 16, 36, 64]

예: Python(lambda)


lambda를 사용하면 다음과 같다.
괄호의 대응도 줄을 바꾸는 것이 어디에 좋을지 모르겠다......
numbers = list(map(lambda n: n * n, filter(lambda n: n % 2 == 0, range(10))))
print(numbers)
# [0, 4, 16, 36, 64]

예: Python+PyFunction


충분히 준비해 PyFunctional을 사용하면 루비나 JS처럼 메소드 체인으로 쓸 수 있다.
from functional import seq

# 改行のために括弧で挟む。
numbers = (seq(range(10))
            .filter(lambda n: n % 2 == 0)
            .map(lambda n: n * n)
          )

# 括弧じゃないほうがいいなら、行末にバックスラッシュをつける。
numbers = seq(range(10))\
            .filter(lambda n: n % 2 == 0)\
            .map(lambda n: n * n)

print(numbers)
# [0, 4, 16, 36, 64]
쉽게 말하면 배열을 seq에 맡기고 필요한 방법을 연쇄하는 느낌이다.
루비랑 똑같은 것 같은데.
사용 방법은 Giithub의 공식 창고에서 확인하세요.
PyFunctional - Github

총결산


PyFunction의 편안한 배열로 생활하세요!

좋은 웹페이지 즐겨찾기