我必須做出一個函數,一個空列表作爲第一個參數和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! –