是否有理由进行list.append
评估?或者只是在成功发挥作用时返回0的C约定?
>>> u = []
>>> not u.append(6)
True
Run Code Online (Sandbox Code Playgroud) 我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]
).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.
请注意,我不是在抱怨(我敢肯定有是一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.
帮助我理解我在以下代码中无法识别的问题.
def extend_a_list(list_var):
return list_var.extend([6, 2])
def plus_equals_list(list_var):
list_var += [6]
return list_var
list_var = [1, 2, 3]
print "Extending"
print extend_a_list(list_var)
list_var = [1, 2, 3]
print "Plus Equals"
print plus_equals_list(list_var)
>>> Extending
>>> None
>>> Plus Equals
>>> [1, 2, 3, 6]
Run Code Online (Sandbox Code Playgroud)
延伸是给予None
.这是为什么?