添加到函数中定义的列表

Lan*_*ins 3 python function list append

如何在函数中创建列表,附加到它,然后将另一个值传递给函数以附加到列表。

例如:

def another_function():
    y = 1
    list_initial(y)

def list_initial(x):
    list_new = [ ]
    list_new.append(x)
    print list_initial

another_function()
list_initial(2)
Run Code Online (Sandbox Code Playgroud)

谢谢!

hug*_*own 5

如果您想要一个范围限定于您的函数的列表,您可以执行以下操作:

def list_at_function_scope(arg,lst=[]):
    lst.append(arg)
    return lst

print list_at_function_scope(2)
print list_at_function_scope("qwqwe")
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

>>> print list_at_function_scope(2)
[2]
>>> print list_at_function_scope("qwqwe")
[2, 'qwqwe']
Run Code Online (Sandbox Code Playgroud)

请注意,这通常被认为是 Python 中众所周知的反模式/错误。只是为了让您知道自己在做什么。


Mat*_*ewD 5

我猜你在追求这样的事情:

#!/usr/bin/env python

def make_list(first_item):
    list_new = []
    list_new.append(first_item)
    return list_new

def add_item(list, item):
    list.append(item)
    return list

mylist = make_list(1)
mylist = add_item(mylist, 2)

print mylist    # prints [1, 2]
Run Code Online (Sandbox Code Playgroud)

甚至:

#!/usr/bin/env python

def add_item(list, item):
    list.append(item)
    return list

mylist = []
mylist = add_item(mylist, 1)
mylist = add_item(mylist, 2)

print mylist    # prints [1, 2]
Run Code Online (Sandbox Code Playgroud)

但是,这种操作通常不值得用函数包装。

#!/usr/bin/env python

#
# Does the same thing
#
mylist = []
mylist.append(1)
mylist.append(2)

print mylist    # prints [1, 2]
Run Code Online (Sandbox Code Playgroud)