Найти - Пользователи
Полная версия: Изменение списка с помощью функций. Как сделать правильно?
Начало » Python для новичков » Изменение списка с помощью функций. Как сделать правильно?
1
Cronk
Надо получить список объектов, первый объект в списке будет родителем, остальные потомками. Родителя и потомков возвращают соответсвующие функции. Придумалось два варианта:

def get_parent(lst):
    return lst.append("parent")
def get_children(lst):
    for x in range(3):
        lst.append("obj_{}".format(x))
    return lst
objects = []
get_parent(objects)
get_children(objects)
print(objects)

def get_parent():
    return ["parent"]
def get_children():
    lst = []
    for x in range(3):
        lst.append("obj_{}".format(x))
    return lst
objects = []
objects.extend(get_parent())
objects.extend(get_children())
print(objects)

Результат выполнения одинаковый, поэтому вопрос - как правильно?
Мне больше первый вариант нравится - аккуратней выглядит вызов функций.
Хотя из второго явно видно, что меняется ранее созданный список.
old_monty
Cronk
Надо получить список объектов, первый объект в списке будет родителем, остальные потомками. Родителя и потомков возвращают соответсвующие функции.
def get_parent(lst):
    return lst.append("parent")
Во-первых, объект parent добавляется к списку последним, а не первым:
>>> lst = [1,2,3]
>>> get_parent(lst)
>>> lst
[1, 2, 3, 'parent'] 
Во-вторых, функция get_parent ничего не возвращает:
>>> lst = [1,2,3]
>>> result = get_parent(lst)
>>> print(result)
None 
>>> 
Kon52
def get_parent():
    return ["parent"]
def get_children():
    return ["obj_{}".format(i) for i in range(3)]
objects = get_parent() + get_children()
print(objects)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB