Appendind函数的返回结果为None

时间:2019-09-02 07:56:28

标签: python python-3.x list function

我有一个返回列表的函数:

def get_all_newids() -> list:
    return list(group_dict.values())

当我尝试在分配时附加此列表时,它分配None

grpids = get_all_newids().append('42')  # None

如果我在作业后追加,一切都会按预期进行:

grpids = get_all_newids()
grpids.append('42')  #  ['33', '42']

只是想知道为什么会这样。并且有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您可以一行完成:

grpids = get_all_newids() + ['42']

答案 1 :(得分:1)

@eumiro提供了一个解决方案,但是没有得到答案:

  

只是想知道为什么会这样。

因为在没有很好的理由返回变量时(例如None,Python中“变异”方法返回pop是很习惯的(尽管不是通用的)如果它没有返回弹出的值)。

append将一个项目添加到列表,但不返回任何内容,因为没有附加的内在返回值。同样,extendinsertremovereversesort