附加项列表上的Python3结果附加另一项需要更多解释
有一个场景让我有点困惑附加项列表上的Python3结果附加另一项需要更多解释,python,python-3.x,list,python-2.7,Python,Python 3.x,List,Python 2.7,有一个场景让我有点困惑 item=[5] 项目.附加(项目.附加(6)) 打印(项目) ##这将导致 [5、6、无] 为什么列表的最后一个元素是None?因为项。append(6)返回None,但在执行过程中将6添加到列表中,因此结果表达式转换为: item.append(None) 此行为描述为: 有些集合类是可变的。添加、减去或重新排列其成员的方法不会返回特定项,也不会返回集合实例本身,但不会返回 item.append(6)将6追加到列表中,并返回None 由于您执行item.appe
item=[5]
项目.附加(项目.附加(6))
打印(项目)
##这将导致
[5、6、无]
为什么列表的最后一个元素是None?因为项。append(6)
返回None
,但在执行过程中将6
添加到列表中,因此结果表达式转换为:
item.append(None)
此行为描述为:
有些集合类是可变的。添加、减去或重新排列其成员的方法不会返回特定项,也不会返回集合实例本身,但不会返回
item.append(6)将6追加到列表中,并返回None
由于您执行item.append(item.append(6)),因此内部append()会追加6并返回None,外部append()会追加内部append()fn返回的“None”。只需删除outer append()函数即可解决问题。由于append()函数只返回None,因此不能这样打印列表。按照下面的代码操作
像这样:
item = [5]
item.append(6)
print(item)
我猜你在写问题时错过了答案
更新问题后更新:
item.append(6)返回None,因此当您追加item.append(6)到列表中时,它会再次追加None。
item.append(6)
返回None
,最终结果是6。它会修改原始数据段,而不会复制,因此现在item的末尾有一个6,但是,您正在将该函数调用的结果附加到item,从而产生您的输出。@dipesh 6在item.append(6)
执行时添加到列表中。似乎我问了一个不清楚的问题。我现在编辑了这个问题。非常感谢你的解释。我现在确实有了明确的观点:)实际问题应该有所不同。我现在编辑了这个问题@从来没有人给过我更多关于这个场景的见解。我只是想知道为什么原始列表中的最后一个元素是None
。在回答这个问题之前,我没有意识到在列表中添加项目将返回None
。我一定错过了这个问题