如何填充列表
我需要写一个函数,第一个参数是一个空列表,第二个参数是一个数字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
如果一个函数没有明确的 return
或 yield
,那么它会返回 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)