我是python的初学者,非常感谢你!
功能:
def count(c):
return c.count(1)
count(1,1,1,11,1,12,1)
这个功能不起作用,我想创建一个函数计算多少1
的?
拉姆达:
counts = lambda m:count('m')
counts('what is you name, my name is mammy!')
这个lambda也不起作用。我想创建一个lambda计数'm'
的多少?
答案 0 :(得分:1)
只需在*
前添加c
即可获取所有剩余参数并将其设置为list
def count(*c):
return c.count(1)
count(1,1,1,11,1,12,1)
并且lambda
函数可以是:
counts = lambda m: m.count('m')
counts('what is you name, my name is mammy!')
答案 1 :(得分:1)
你的第一个例子失败了,因为你传递了多个参数,它只接受一个(大概是list
)。解决问题的一种方法是传递list
:
def count(c):
return c.count(1)
print(count([1,1,1,11,1,12,1])) # 5
另一种解决方法是允许多个参数,但将视为list
。以下是您可以这样做的方法:
def count(*c):
return c.count(1)
print(count(1,1,1,11,1,12,1)) # 5
您的第二个示例缺少调用count
的内容。同样,一个可能的解决方案:
counts = lambda x: x.count('m')
print(counts('what is you name, my name is mammy!')) # 6