Python 如何填写清单

Python 如何填写清单,python,list,fill,Python,List,Fill,我必须创建一个函数,将空列表作为第一个参数,n作为第二个参数,这样: L=[] function(L,5) print L returns: [1,2,3,4,5] 我在想: def fillList(listToFill,n): listToFill=range(1,n+1) 但是它返回的是一个空列表。没有显式返回的函数或收益返回无。你想要的是 def fill_list(l, n): for i in xrange(1, n+1): l.append(i)

我必须创建一个函数,将空列表作为第一个参数,n作为第二个参数,这样:

L=[]
function(L,5)
print L
returns:
[1,2,3,4,5]
我在想:

def fillList(listToFill,n):
    listToFill=range(1,n+1)

但是它返回的是一个空列表。

没有显式
返回的函数
收益
返回
。你想要的是

def fill_list(l, n):
    for i in xrange(1, n+1):
        l.append(i)
    return l
但这是非常不和谐的。您最好只调用
range(1,n+1)
,它还返回
n=5的列表
[1,2,3,4,5]

def fill_list(n):
    return range(1, n+1)

考虑使用
extend

>>> l = [] >>> l.extend(range(1, 6)) >>> print l [1, 2, 3, 4, 5] >>> l.extend(range(1, 6)) >>> print l [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 在

如果不返回新指针,则只更改listToFill的指针;新指针在函数外不可用,您仍然拥有空列表的指针(在外部范围内)。

  • 如果您这样做:
def填充列表(列表填充,n):
listToFill=范围(1,n+1)

在函数范围内创建一个新列表,并在函数结束时消失。没用

  • 与:
def填充列表(列表填充,n):
listToFill=范围(1,n+1)
返回listToFill()

返回列表后,必须按如下方式使用:

newList=fillList(oldList,1000)
fillList(oldList,1000)
  • 最后,在不返回参数的情况下:
def填充列表(列表填充,n):
listToFill.extend(范围(1,n+1))

这样称呼它:

newList=fillList(oldList,1000)
fillList(oldList,1000)
结论

在函数内部,如果要修改参数,可以重新分配参数并返回它,也可以调用对象的方法而不返回任何内容。
您不能像在函数之外那样重新分配它,而不返回任何内容,因为它不会在函数之外产生效果。

还有一个简短的示例,说明您要执行的操作:

l = []
l.extend(range(1, 5))
l.extend([0]*3)

print(l)

函数不应返回任何内容,而应使用从1到n的整数填充传递给它的列表。@LinusSvendsson:然后从我的建议中删除
返回值
。函数应包含两个参数,要填充的列表和n@我的第一个建议就是这样。