如何填充列表

11 投票
6 回答
76631 浏览
提问于 2025-04-17 07:58

我需要写一个函数,第一个参数是一个空列表,第二个参数是一个数字n,这样可以实现:

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

我在想:

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

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

6 个回答

2

这是一个更简短的例子,展示了你想要做的事情:

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

print(l)
4

如果一个函数没有明确的 returnyield,那么它会返回 None。你想要的结果是

def fill_list(l, n):
    for i in xrange(1, n+1):
        l.append(i)
    return l

但这样写在Python中并不是很优雅。你最好直接使用 range(1, n+1),这样对于 n=5,它也会返回列表 [1,2,3,4,5]

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

考虑一下使用 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]

如果你想要创建一个功能(做同样的事情):

def fillmylist(l, n):
    l.extend(range(1, n + 1))
l = []
fillmylist(l, 5)

撰写回答