{"id":379,"date":"2017-03-02T00:51:24","date_gmt":"2017-03-01T16:51:24","guid":{"rendered":"http:\/\/vinta.ws\/code\/?p=379"},"modified":"2026-02-18T01:20:36","modified_gmt":"2026-02-17T17:20:36","slug":"functional-programming-in-python","status":"publish","type":"post","link":"https:\/\/vinta.ws\/code\/functional-programming-in-python.html","title":{"rendered":"Functional Programming in Python"},"content":{"rendered":"<h2>lambda<\/h2>\n<pre class=\"line-numbers\"><code class=\"language-py\">square_func = lambda x: x**2\nsquare_func(2)\n\n# equals to\n\ndef square_func(x):\n    return x**2<\/code><\/pre>\n<p>Python \u7684 <code>lambda<\/code> \u5176\u5be6\u5c31\u662f JavaScript \u7684 arrow function<\/p>\n<h2>map<\/h2>\n<p>list \u7684\u6bcf\u4e00\u500b\u5143\u7d20\u90fd\u6703\u5404\u81ea\u7d93\u904e <code>def func(x)<\/code> \u53bb\u8655\u7406<br \/>\n\u6700\u5f8c\u5f97\u5230\u7684\u6703\u662f\u4e00\u500b\u65b0\u7684\u6578\u91cf\u76f8\u540c\u7684 list<\/p>\n<pre class=\"line-numbers\"><code class=\"language-py\">def double(number):\n  return number * 2\n\nprint(list(map(double, [1, 2, 3, 4])))\n# [2, 4, 6, 8]\n\n# equals to\n\nprint(list(map(lambda number: number * 2, [1, 2, 3, 4])))<\/code><\/pre>\n<h2>reduce<\/h2>\n<p>list \u4e2d\u7684\u5143\u7d20\u6703\u5169\u5169\u7d93\u904e <code>def func(x, y)<\/code> \u53bb\u8655\u7406<br \/>\n\u6700\u5f8c\u5f97\u5230\u7684\u6703\u662f\u4e00\u500b\u55ae\u4e00\u7684\u503c<\/p>\n<pre class=\"line-numbers\"><code class=\"language-py\">def add(x, y):\n    return x + y\n\nprint(reduce(add, [1, 2, 3, 4]))\n# ((((1+2)+3)+4)+5) = 10\n\n# equals to\n\nprint(reduce(lambda x, y: x + y, [1, 2, 3, 4]))<\/code><\/pre>\n<h2>filter<\/h2>\n<p>\u5c0d list \u7684\u6bcf\u4e00\u500b\u5143\u7d20\u505a <code>def func(x)<\/code><br \/>\n\u7522\u751f\u4e00\u500b\u65b0\u7684 list \u53ea\u5305\u542b <code>def func(x)<\/code> \u7d50\u679c\u70ba True \u7684\u5143\u7d20<\/p>\n<p>ref:<br \/>\n<a href=\"http:\/\/www.vinta.com.br\/blog\/2015\/functional-programming-python.html\">http:\/\/www.vinta.com.br\/blog\/2015\/functional-programming-python.html<\/a><br \/>\n<a href=\"http:\/\/www.bogotobogo.com\/python\/python_fncs_map_filter_reduce.php\">http:\/\/www.bogotobogo.com\/python\/python_fncs_map_filter_reduce.php<\/a><\/p>\n<h2>zip<\/h2>\n<pre class=\"line-numbers\"><code class=\"language-py\">number_list = [1, 2, 3]\nstr_list = ['one', 'two', 'three']\nlist(zip(number_list, str_list))\n# [(1, 'one'), (2, 'two'), (3, 'three')]<\/code><\/pre>\n<p>ref:<br \/>\n<a href=\"https:\/\/www.programiz.com\/python-programming\/methods\/built-in\/zip\">https:\/\/www.programiz.com\/python-programming\/methods\/built-in\/zip<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>map() \u6703\u8b93 list \u7684\u6bcf\u4e00\u500b\u5143\u7d20\u90fd\u6703\u5404\u81ea\u7d93\u904e func(x) \u53bb\u8655\u7406\uff0c\u6700\u5f8c\u5f97\u5230\u7684\u6703\u662f\u4e00\u500b\u65b0\u7684\u6578\u91cf\u76f8\u540c\u7684 list\u3002<\/p>\n","protected":false},"author":1,"featured_media":380,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[110,2],"class_list":["post-379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-about-python","tag-functional-programming","tag-python"],"_links":{"self":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":0,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media\/380"}],"wp:attachment":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}