下面的lambda表达式不应该返回一个列表吗?目前,它不是。
>>> f=lambda l ,x:l.append(x)
>>> print f([1],3)
None
答案 0 :(得分:1)
append
是一个副作用函数;它会将值附加到现有列表而不返回值(或None,具体取决于您想要的方式)。
也许你想要:
lambda l, x: l + [x]
这将从现有列表创建一个新列表,并在末尾附加一个元素。
答案 1 :(得分:0)
函数append
返回None
,因此你的lambda也返回None
。此外,append
仅更改本地变量l
答案 2 :(得分:0)
list.append()
不会返回值,但因为python列表是mutable object,<CustomControls:CustomTextBox ... ImageSrc="{StaticResource ByParticipantSource}" />
确实会被追加,所以它不会被返回。
例如,这将起作用:
3
如果您不想修改t = [1]
f(t, 3)
print(t) # [1, 3]
,可以写
t
因为lambda不会修改列表f = lambda l, x: l + [x]
t = [1]
print(f(t, 3)) # [1, 3]
print(t) # [1]
,只返回一个新列表。