python 返回当前作为参数
python reduce accum as an argument
根据 SO 中的 this 线程,reduce
相当于折叠。但是,在Haskell中,accum参数也传递给了fold。 python 中传递累加器的方法是什么 reduce
.
my_func(accum, list_elem):
if list_elem > 5:
return accum and True # or just accum
return accum and False # or just False
reduce(my_func, my_list)
在这里,我想将 True
作为累加器传递。 python 中传递初始累加器值的方式是什么。
根据 documentation,reduce
接受可选的第三个参数作为累积初始值设定项。
你可以这样写:
def my_func(acc, elem):
return acc and elem > 5
reduce(my_func, my_list, True)
或者,使用 lambda:
reduce(lambda a,e: a and e > 5, my_list, True)
或者,对于这个特定的示例,如果您想检查 5 是否严格低于 all my_list
中的元素,您可以使用
greater_than_five = (5).__lt__
all(greater_than_five, my_list)
根据 SO 中的 this 线程,reduce
相当于折叠。但是,在Haskell中,accum参数也传递给了fold。 python 中传递累加器的方法是什么 reduce
.
my_func(accum, list_elem):
if list_elem > 5:
return accum and True # or just accum
return accum and False # or just False
reduce(my_func, my_list)
在这里,我想将 True
作为累加器传递。 python 中传递初始累加器值的方式是什么。
根据 documentation,reduce
接受可选的第三个参数作为累积初始值设定项。
你可以这样写:
def my_func(acc, elem):
return acc and elem > 5
reduce(my_func, my_list, True)
或者,使用 lambda:
reduce(lambda a,e: a and e > 5, my_list, True)
或者,对于这个特定的示例,如果您想检查 5 是否严格低于 all my_list
中的元素,您可以使用
greater_than_five = (5).__lt__
all(greater_than_five, my_list)