所以我只编写了几个星期,今天我在编写一个填充空列表的python中的算法。我写了这个:
def wth (a,b):
list=[]
i = 0
j = b
while len(list)<a:
list.insert(i,j)
i=i+1
j=j+1
return list
它起作用,例如:
wth(10,10)
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
但是,如果我想保留此列表并对其执行某些操作,则只返回空列表:
print list
[]
这是为什么?非常感谢提前。
答案 0 :(得分:3)
如果要使用函数的结果,则需要将其分配给变量,如
new_list = wth(a, b)
print new_list
而不是所有这些代码,您只需使用range
函数来实现您想要的功能,就像这样
def wth(a, b):
return range(b, b + a)
答案 1 :(得分:1)
在您的示例中,“list”是函数范围内的变量。当函数终止时,“list”指向的对象将返回给调用者,但“list”变量本身会与本地函数上下文中的所有变量一起被销毁。
事实证明“list”是内置的名称,因此当您稍后尝试打印时,您应该获得"<type 'list'>"
。从你的例子中,我假设你已经创建了一个名为“list”的全局变量。
使用内置类型或函数作为变量名(list,dict,map等)通常是不明智的,因为你屏蔽了以后可能想要使用的对象,并且通常会使每个人感到困惑。