首页 > 解决方案 > Python(DataQuest):对在循环外部和内部声明列表感到困惑?

问题描述

Python 新手并通过 DataQuest 学习。我正在学习一些关于创建列表列表的知识(复数是列表列表还是列表列表?:P)。好吧,对于这个特定的部分,这是正确的代码:

numerical_list = [];

for line in nested_list:
    name = line[0]
    count= float(line[1])
    new_list = [name, count]
    numerical_list.append(new_list)
print(numerical_list[0:5]);

他们给了你一些指导,包括在开始循环之前创建空的 numeric_list,但我有点困惑为什么我需要声明那个空列表,而在循环的主体中,我能够创建

new_list = [name, count]

不用对外声明。我想我明白了,但我想确定一下。

我的理解是,因为 numeric_list 是空的,所以需要在循环外声明它才能存在,然后,就行了

numerical_list.append(new_list)

我正在为它注入生命。同时,因为我用参数声明 new_list,它已经有了“生命”(我确信有一个更好、更专业的词,但我不知道)并且不需要单独建立。那是对的吗?还是我在这里完全疯了,一边走一边编造逻辑?

换句话说,这是否正确:不能在循环内创建新的空列表,但可以创建带有参数的新列表。

标签: python

解决方案


不,您也可以在循环内创建空列表。例如,您可以将循环内的列表创建重写为

new_list = []
new_list.append(name)
new_list.append(count)

但是,循环是用来填充的numerical_list,因此需要在循环之前创建它。如果您在循环中创建它,它将在每次迭代中被一个空列表覆盖。


推荐阅读