Python 如何填写清单
我必须创建一个函数,将空列表作为第一个参数,n作为第二个参数,这样: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)
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@我的第一个建议就是这样。