Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在函数式编程范例中将两个函数映射在一起_Python_Functional Programming - Fatal编程技术网

Python 在函数式编程范例中将两个函数映射在一起

Python 在函数式编程范例中将两个函数映射在一起,python,functional-programming,Python,Functional Programming,我正在学习Python中的函数式编程。我读到函数在理想情况下只做一件事,所以如果我不能同时传递多个函数,我该如何进行大型计算呢 import datetime birthdays = [ datetime.datetime(2012, 4, 29), datetime.datetime(2006, 8, 9), datetime.datetime(1978, 5, 16), datetime.datetime(1981, 8, 15), datetime

我正在学习Python中的函数式编程。我读到函数在理想情况下只做一件事,所以如果我不能同时传递多个函数,我该如何进行大型计算呢

import datetime

birthdays = [
    datetime.datetime(2012, 4, 29),
    datetime.datetime(2006, 8, 9),
    datetime.datetime(1978, 5, 16),
    datetime.datetime(1981, 8, 15),
    datetime.datetime(2001, 7, 4),
    datetime.datetime(1999, 12, 30)
]

today = datetime.datetime.today()

def is_over_13(dt):
  delta = today - dt
  return delta.days >= 4745

def date_string(dt):
  return dt.strftime("%B %d")

def reverse(iterable):
  return iterable[::-1]

birth_dates = list(map(date_string, filter(is_over_13, birthdays)))

代码以
date\u字符串显示生日,该字符串由13岁以上的人过滤。我想在现有的
地图
上添加
反向
功能。这可能吗?

有一个内置的
reversed()
函数可以使用。它返回一个迭代器,因此您可能希望使用
list()
将其包装起来


有一个内置的
reversed()
函数可以使用。它返回一个迭代器,因此您可能希望使用
list()
将其包装起来

是的,您可以(我正在使用您的
反转功能):

或者,您可以先将
生日
倒过来:

birth_dates = list(map(date_string, filter(is_over_13, reverse(birthdays))))
您也可以使用
反向
而不是编写自己的函数。

是的,您可以(我正在使用您的
反向
函数):

或者,您可以先将
生日
倒过来:

birth_dates = list(map(date_string, filter(is_over_13, reverse(birthdays))))
您也可以使用
反向
,而不是编写自己的函数

birth_dates = list(map(date_string, filter(is_over_13, reverse(birthdays))))