добавление в список, определенный в функции - PullRequest
3 голосов
/ 17 августа 2011

Как я могу создать список в функции, добавить к нему, а затем передать другое значение в функцию для добавления в список.

Например:

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)

Спасибо!

Ответы [ 2 ]

4 голосов
/ 17 августа 2011

Полагаю, вы ищете что-то вроде этого:

#!/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]

Или даже:

#!/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]

Но этот тип операции обычно не стоит включать в функции.

#!/usr/bin/env python

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

print mylist    # prints [1, 2]
4 голосов
/ 17 августа 2011

Если вам нужен список, который относится к вашей функции, вы можете сделать это:

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

print list_at_function_scope(2)
print list_at_function_scope("qwqwe")

И это выглядит так:

>>> print list_at_function_scope(2)
[2]
>>> print list_at_function_scope("qwqwe")
[2, 'qwqwe']

Имейте в виду, это обычносчитается хорошо известным анти-паттерном / ошибкой в ​​Python.Просто чтобы вы знали, во что вы ввязываетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...