临时列表理解的持续时间

时间:2016-06-09 19:17:46

标签: python list list-comprehension

我来自C / C ++背景,我无法在python中找到它的工作原理。

在C ++中,返回值存储在临时变量中,可以使用/重新分配。所以我可以这样做:

   int foo() {
       return 1; 
    }

    int main() {
       int x = foo() + 1;
       return 0; 
    }

我认为这在Python中是一样的,直到现在,它确实如此。但是,当使用列表理解时,这怎么会不起作用:

print([i for i in range(5)].append(5)) 

我期待0-5的列表,但我得到无。

要解决此问题,我需要先将列表分配给变量:

my_list = [i for i in range(5)]
my_list.append(1)
print(my_list)

所以list comprehensions从一些迭代器创建新列表但是不返回新列表?但不知何故,如果我将它分配给变量,它确实会返回新列表? 困惑

感谢阅读。

0 个答案:

没有答案