append方法如何在python中工作?

我学习编程语言,测验问题和解决方案是这样的:

def foo(x):
   x.append (3)
   x = [8]
   return x

x=[1,5]
y= foo(x)
print x
print y

为什么打印如下:

[1 5 3 ]
[8]

为什么x不等于8?

解决方法

另外两个答案很棒.我建议你试试id来获取地址.

请参阅以下示例

def foo(x):
   x.append (3)
   print "global",id(x)
   x = [8]
   print "local ",id(x)
   return x

x=[1,5]
print "global",id(x)
y= foo(x)
print "global",id(x)
print x
print y

输出

global 140646798391920
global 140646798391920
local  140646798392928
global 140646798391920
[1,5,3]
[8]

如您所见,变量x的地址在您操作时保持不变,但在使用=时会发生变化.函数内部的变量赋值使变量本地化为函数

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...