这是我的代码 我有两个不同的输出,[2]和[2,4,6],有人可以做一些解释吗?
list = [1,2,3]
def getdouble(l):
result = []
for i in l :
i = i * 2
result.append(i)
return result
print getdouble(list)
def getdouble_v2 (l):
result = []
for i in range(len(l)):
l[i] = l[i] * 2
result.append(l[i])
return result
print getdouble_v2(list)
答案 0 :(得分:2)
获取所声明输出的唯一方法是文件中的缩进是否已损坏。确认您没有将空格和标签与python -tt
混合。
答案 1 :(得分:0)
两个函数都为同一输入列表返回相同的result
列表。但是,第二个函数也会在行l[i] = l[i] * 2
中修改原始列表。第一个功能没有。
因此,第一个函数的结果是:
l = [1,2,3]
result = [2,4,6]
第二个功能的结果是:
l = [2,4,6]
result = [2,4,6]
答案 2 :(得分:0)
除了行
之外,您使用4个空格进行缩进 return result
由标签缩进。这很不幸,因为你的编辑器将标签显示为4个空格,但Python将其视为8个空格,因此代码看起来像Python
list = [1,2,3]
def getdouble(l):
result = []
for i in l :
i = i * 2
result.append(i)
return result
所以你看,它是在第一个项目附加到列表
之后返回的