我必须做出一个函数,一个空列表作为第一个参数和n为谢胜利,参数,使:如何填写清单
L=[]
function(L,5)
print L
returns:
[1,2,3,4,5]
我在想:
def fillList(listToFill,n):
listToFill=range(1,n+1)
但它正在返回一个空列表。
我必须做出一个函数,一个空列表作为第一个参数和n为谢胜利,参数,使:如何填写清单
L=[]
function(L,5)
print L
returns:
[1,2,3,4,5]
我在想:
def fillList(listToFill,n):
listToFill=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]
如果你想一个函数(做同样的):
def fillmylist(l, n):
l.extend(range(1, n + 1))
l = []
fillmylist(l, 5)
没有明确的函数return
或yield
返回None
。你想要的是
def fill_list(l, n):
for i in xrange(1, n+1):
l.append(i)
return l
但这是非常unpythonic。你最好只调用range(1, n+1)
也返回列表[1,2,3,4,5]
为n=5
:
def fill_list(n):
return range(1, n+1)
在
def fillList(listToFill,n):
listToFill=range(1,n+1)
你只改变listToFill的指针,如果你不返回新的指针;新指针在函数外不可用,并且仍然有空列表的指针(在外部范围内)。
def fillList(listToFill,n): listToFill=range(1,n+1)
一个新的列表,当函数结束时消失。无用。
def fillList(listToFill,n): listToFill=range(1,n+1) return listToFill()
返回列表中,您必须使用这样的:
newList=fillList(oldList,1000)
def fillList(listToFill,n): listToFill.extend(range(1,n+1))
,并调用它像这样:
fillList(oldList,1000)
结论:
里面一个功能,如果你想修改您可以重新分配它并返回它的参数,或者你可以调用对象的方法并不返回任何内容。 你不能只是重新分配它,就好像你不在函数中一样,也不会返回任何东西,因为它不会影响函数的外部效果。
该函数不应返回任何内容,而是使用从1到n的整数填充传递给它的列表。 –
@LinusSvendsson:然后从我的建议中删除'return'。 –
该函数应该带两个参数,列表来填充和n! –