我需要帮助理解Python中的“List”关键字问题

2024-06-02 08:18:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我把我的头发都扯下来了。我有以下声明:

list = []

list在IDE中是另一种颜色,表示它是一个关键字。我在网上看到了一个关键词。但是,所有示例都将list在语句中的位置视为简单的用户指定名称(如“myu list”或类似的名称)。我正试图清除代码中一堆不必要的垃圾,但如果删除它后面的del语句,随后使用名称list会使程序崩溃。如果我把del放回去,它就工作了。如果它是一个简单的赋值语句,那么我可以期望后面的赋值将替换前面的赋值,而不管del是否存在。你知道吗

为了使我的想法复杂化,后面的参考文献讨论了list,就像一个模块(即list())。如果我尝试将第一个引用的名称更改为list1 = [],那么实际使用该结构时会失败,因为它是“non-iterable”

抱歉,如果这是无人机,但这对我来说没有意义。你知道吗

续: 前几句话是:

list = []
p = 129
for loop in range(1, math.ceil(len(files)/4) + 1):
list.append(p)
p = p + 140

循环完成后: 删除列表。你知道吗

稍后:

WOW_time_1 = list(fti.loc[:
'NLG Wow(takeo0ff)'].dropna()). . .

我的期望是第一个语句(list=[])定义结构。在这种情况下,我认为应该使用用户定义的名称,只是它稍后使用“append”方法。然后,在del之后,它被再次使用,没有任何声明。如果它是一个总是可用的关键字,我不明白为什么它被声明在第一位,为什么我必须删除它,以便第二次引用它将工作。你知道吗

哦,我是在调试,不是在写。:-)


Tags: 用户名称声明定义颜色关键字语句ide
1条回答
网友
1楼 · 发布于 2024-06-02 08:18:12

名称list在您正在阅读的代码中用于两种不同的用途。你知道吗

让我们从第二次使用开始,因为这是比较正常的一次。当代码执行list(...)操作时,它调用名为list的内置类型,该类型构建一个list对象,并用传递给它的iterable参数中的值填充它。您可能已经多次使用过这种类型,尽管您可能不会太频繁地直接调用list(因为您可以使用文本语法构建列表,例如[1, 2, 3])。你知道吗

文件前面的list的另一个用法是作为变量。这样做是合法的,但通常认为为自己的目的使用内置名是不好的代码样式。当您对一个内建项的名称进行赋值时,该内建项将隐藏在当前名称空间中,因此您无法轻松访问正常值。您展示的代码将一个空列表对象(内置的list类的一个实例,尽管它是用文字[]创建的,比等价的list()评级更高)绑定到名称list,然后用各种数字填充它。你知道吗

在不再需要该变量之后,代码调用del list,这将从本地名称空间中删除该变量,从而结束对内置类型的隐藏。这可能是以前对此代码进行调试的结果,因为隐藏list内置可能会破坏后面的代码。一个更好的解决方案是将上面的代码更改为使用不同的变量名,并首先避免阴影。你知道吗

至于为什么总是突出显示list,您的代码编辑器可能知道list是一个内置的名称。因此,它在使用它的任何地方都会突出显示名称,即使它在特定时刻实际上并不是指内置类型。在代码上运行样式检查程序的某些编辑器在对内置名称进行阴影处理时可能会发出警告。你知道吗

可能值得注意的是,list在Python中不是关键字。您可能注意到,关键字的名称的突出显示是不同的,例如TrueFalseNone(它们也都指内置对象),但可能是编辑器选择对所有这些对象使用相同的颜色。对于非对象关键字,可能更可能使用不同的颜色,如iffor。您不能为任何关键字赋值,因此True = 0if = 0等将给您一个错误。你知道吗

相关问题 更多 >