Python if else语句不能用于reduce lambda函数

时间:2016-09-09 17:10:11

标签: python lambda reduce

我是Python的NULLfunction served_orders($worker, $date, $options=array()) { return new WP_Query(array_merge(array( 'post_type' => 'shop_order', 'meta_query' => array('key' => 'server', 'value' => $worker), 'date_query' => array( array( 'year' => $date['year'], 'month' => $date['mon'], 'day' => $date['mday'], ), ), ), $options)); } function commission_rate($worker) { return served_orders($worker, getdate())->count() > 500 ? 0.2 : 0.1; } 新手,我不明白为什么这个功能不起作用:

lambda

我希望输出为reduce

有谁知道这里有什么问题?

1 个答案:

答案 0 :(得分:6)

您似乎对#ifndef SYS_kdebug_trace #define SYS_kdebug_trace 180 #endif 函数参数的参数顺序感到困惑。第一个参数是运行总计,第二个参数是新数据。在您的示例中,reduce是组合字符串,x是新字符。

试试这个:

y

请注意以下错误:在第一次调用lambda表达式时,def my_func(str): symbols = ['_', '-'] return reduce(lambda x, y: x + (' ' if y in symbols else y), str) print my_func('foo_bar-baz') # 'foo bar baz' xstr[0]y。因此,如果传入字符串中的第一个字符是符号,则不会进行转换。

str[1]

这可以通过向print my_func('-foo_bar-baz') -foo bar baz 提供第三个参数来解决:

reduce()