鱼C论坛

 找回密码
 立即注册
查看: 1360|回复: 5

[已解决]求助reduce参数带入流程

[复制链接]
发表于 2018-1-26 23:08:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from functools import reduce              
def sum(x,y):
     return x/y
l = [1]
l = reduce(sum,l)
print(l)
sum函数不是需要两个参数吗?我就让l有一个元素怎么也能执行呢?这个参数是如何打入的,到底是作为x还是作为y,还有另外一个参数怎么给的值?
得数居然是1
如果我让l=[0]
得数就是0,我可以让l=[0,1]但是不可[1,0]这个好理解2个参数吗?y不能等于0,也就是说优先赋值给x,y默认给的是什么?
最佳答案
2018-1-28 22:04:18
冰封雪舞 发表于 2018-1-28 21:42
l=[1]就一个数值,你怎么取l[1]?

def sum(x,y):
    print('sum function running')  #为了测试加了一句话
    return x/y
l = [1]
reduce(sum,l)
# 结果预期的 'sum function running' 没有打印出来 说明reduce在内部对 l 的长度做了判断 如果为一 直接返回 不经过 sum 函数

def sum(x,y):
    print('sum function running')
    return x/y
l = [1,2]
reduce(sum,l)
# 打印 'sum function running'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-26 23:25:07 | 显示全部楼层
这应该是reduce的功劳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-27 00:00:23 | 显示全部楼层
def sum(x,y):
     return x/y
l = [1]
l = reduce(sum,l)
reduce 首先在 l 里取2个数 x =l[0] y = l[1] 带入 sum(x,y),
之后 x = 上一步的sum(x,y)返回值 y = l[2] 带入sum(x,y),
之后 x = 上一步的sum(x,y)返回值,y = l[3] 带入sum(x,y),
...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-28 21:42:04 | 显示全部楼层
yjsx86 发表于 2018-1-27 00:00
def sum(x,y):
     return x/y
l = [1]

l=[1]就一个数值,你怎么取l[1]?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-28 22:04:18 | 显示全部楼层    本楼为最佳答案   
冰封雪舞 发表于 2018-1-28 21:42
l=[1]就一个数值,你怎么取l[1]?

def sum(x,y):
    print('sum function running')  #为了测试加了一句话
    return x/y
l = [1]
reduce(sum,l)
# 结果预期的 'sum function running' 没有打印出来 说明reduce在内部对 l 的长度做了判断 如果为一 直接返回 不经过 sum 函数

def sum(x,y):
    print('sum function running')
    return x/y
l = [1,2]
reduce(sum,l)
# 打印 'sum function running'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-29 11:13:47 | 显示全部楼层
yjsx86 发表于 2018-1-28 22:04
def sum(x,y):
    print('sum function running')  #为了测试加了一句话
    return x/y

有点开窍了,谢谢解惑。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 17:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表