我来自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从一些迭代器创建新列表但是不返回新列表?但不知何故,如果我将它分配给变量,它确实会返回新列表? 困惑
感谢阅读。