Python3에서, 한 행lambda
에서 함수를 두 개씩 호출하는 방법을 찾고 있습니다.Python3에서 one-liner reduce
print reduce(lambda a,b: a * b // gcd(a, b), mylist)
가 1 행 Python3에서 동일한 작업을 수행하는 것이 가능 (암시 functools.reduce
없이)의 난이이 one line in Python2 수행 할 수 있습니다 정수의 목록의 LCM를 계산하고 싶은 말은하자?
파이썬 3에서는 나는 filter
, map
및 reduce
이 없어 졌음을 안다. 더 짧고 더 명확한 방식으로 Python3로 작성 될 수 있기 때문에 나는 filter
과 map
을 더 이상 필요로하지 않는다고 느낀다. 그러나 나는 아무 것도 찾지 못한 것 외에는 reduce
을위한 멋진 대체물을 찾을 수 있다고 생각했다. 나는 have을 보았습니다 many 기사 that 을 사용하십시오 functools.reduce
또는 "write out the accumulation loop explicitly"을 사용하십시오. 그러나 functools를 가져 오지 않고 한 줄로하고 싶습니다.
더 쉽게 만들면 associative 및 commutative 인 함수를 사용해야 함을 언급해야합니다.
f(1,f(2,f(3,4)))
f(f(1,2),f(3,4))
f(f(3,f(1,4)),2)
- 또는 다른 어떤 순서
왜 한 줄로 바꾸고 싶습니까? 그리고,'functools.reduce'를 사용하고 싶지 않으십니까? 이 요구 사항들은 모두 임의적으로 보이고 실용적이지는 않다. –
Chris의 의견에 덧붙이 기 위해'reduce'는 전역 네임 스페이스에서'functools'로 정확하게 옮겨졌습니다. 왜냐하면 * 간결한 (일부는 모호 할 수도 있음) one-liners . – Sneftel
관련 : http://stackoverflow.com/questions/41524133/removing-duplicates-using-only-lambda-functions/41524134#41524134 –