最赞回答 / 慕码人1183263
sorted函数有四个参数,sorted(iterable, cmp=None, key=None, reverse=False)可以看到其中第一个参数是可迭代对象,后面的参数都是具有默认值的,重点阐述如下:1、cmp,比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回02、key,主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序3、reverse,是否反转,默认...
2017-07-30
最赞回答 / qq_苏格拉没有底_14
这里你是吧filter的用法没搞清楚。filter return的是要留下的元素所满足的条件,不能用if来表达。就像return男人,就把list中的男人元素留下了,不能写成 if 男人。
2017-07-28
最新回答 / 慕慕9426646
我来说一下我的理解,从代码的6行,fs.append(f),这个f是一个变量名,也就是一个指针,而函数的指针是从函数创建开始就不会变的,当第一次循环,fs.append(1),添加到list里面的数值是1,当第二次,第三次调用的时候,fs.append(f)会将前几次的值全部覆盖,因为添加的是一个指针,这个函数指针又开始访问函数,所以返回的都是9 ,以上仅仅是我个人见解,多多讨论
2017-07-28
最新回答 / 慕哥2587987
因为f()表示运行f这个函数,而在你的代码中f不是一个函数,只是一个普通变量,所以f()自然就不对,而该变量接受了calc_prod([1, 2, 3, 4])的值,所以print f输出的实际上就是calc_prod([1, 2, 3, 4])的运行结果
2017-07-28
最新回答 / 小同不一
语法不应该这么写 吧 应该先进行IF判断再进行返回吧。 if type(math.sqrt(x)) == type(1): return x再一个 你这个会得到一个空列表,因为 及时能被开方 得到的结果 也是float类型的
2017-07-28