首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python列表概念

Python列表概念
EN

Stack Overflow用户
提问于 2012-03-14 14:35:38
回答 5查看 480关注 0票数 0

我是python编程新手,为什么这个赋值给k的值是'None‘值

代码语言:javascript
复制
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]

在上面的示例列表中,我将14值附加到列表中,然后赋值给k,但是k正在打印None,请告诉我为什么它打印None而不是附加的列表?

谢谢穆克赛尔

EN

回答 5

Stack Overflow用户

发布于 2012-03-14 14:39:28

append更改当前列表,不返回任何内容。使用:

代码语言:javascript
复制
k = l + [14]

代码语言:javascript
复制
k = l[:]       # Copy list
k.append(14)
票数 7
EN

Stack Overflow用户

发布于 2012-03-14 14:41:22

Python中的大多数方法都会改变它们的实例(.append()、.sort()等)。不返回对象的副本。因此,与l.sort()一样,l.append(X)实际上也返回"None“。

你可能想使用更多的东西,比如:

代码语言:javascript
复制
l.append(14)
k = l[-1]
票数 4
EN

Stack Overflow用户

发布于 2012-03-14 14:59:20

您所看到的是意料之中的-- list.append方法不会返回修改后的列表。如果您看一下Python教程的relevant section,您会注意到返回有用值的方法都有相关文档。

在交互式解释器中工作时,您可以看出,由于缺少输出,表达式不会产生任何结果:

代码语言:javascript
复制
>>> l = [1, 2, 3]
>>> l.append(14)
>>>

如果(理论上) list.append返回该列表,您将看到以下内容:

代码语言:javascript
复制
>>> l = [1, 2, 3]
>>> l.append(14)
[1, 2, 3, 14]
>>>

以这种方式使用交互式解释器可以省去打印每个值的麻烦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9697020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档