相关疑难解决方法(0)

为什么append在此代码中没有返回?

list = [1, 2, 3]
print list.append(4)   ## WRONG, print does not work, append() returns None

## RIGHT:
list.append(4)
print list  ## [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我正在学习Python,我不确定这个问题是否特定于语言以及如何在Python中实现append.

python list append nonetype

49
推荐指数
3
解决办法
5万
查看次数

为什么列表操作不返回结果列表?

我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.

请注意,我不是在抱怨(我敢肯定有一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.

python

5
推荐指数
2
解决办法
320
查看次数

python中"lambda"函数的不安全性

我想制作一个"走路"的模型.

在此输入图像描述

所以我创建了8个函数:

g0 = lambda ct: ct.append((lambda (x,y): (x-1,y))(ct[-1]))
g1 = lambda ct: ct.append((lambda (x,y): (x-1,y+1))(ct[-1]))
g2 = lambda ct: ct.append((lambda (x,y): (x,y+1))(ct[-1]))
g3 = lambda ct: ct.append((lambda (x,y): (x+1,y+1))(ct[-1]))
g4 = lambda ct: ct.append((lambda (x,y): (x+1,y))(ct[-1]))
g5 = lambda ct: ct.append((lambda (x,y): (x+1,y-1))(ct[-1]))
g6 = lambda ct: ct.append((lambda (x,y): (x,y-1))(ct[-1]))
g7 = lambda ct: ct.append((lambda (x,y): (x-1,y-1))(ct[-1]))
Run Code Online (Sandbox Code Playgroud)

但当我尝试应用任何功能时,我得到None:

print g0([(50,50)])
None
Run Code Online (Sandbox Code Playgroud)

好吧,Iet尝试更传统的方式:

def g0(ct):
    ct.append((lambda (x,y): (x-1,y))(ct[-1]))
    return ct
Run Code Online (Sandbox Code Playgroud)

这是按预期工作的:

[(50, 50), (49, 50)]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试

def g0(ct): …
Run Code Online (Sandbox Code Playgroud)

python lambda list

1
推荐指数
2
解决办法
135
查看次数

标签 统计

python ×3

list ×2

append ×1

lambda ×1

nonetype ×1