我为变量分配列表时,为什么Pycharm给我提示“此列表创建可以重写为列表文字”?

我是Python初学者,有一个难题。当我这样写代码时:

lst = [1, 2, 3, 4]

Pycharm给我提示“此列表创建可以重写为列表文字”。但是如果被替换

lst = list([1, 2, 3, 4])

皮查姆什么也没说。 谁能告诉我为什么?

这段代码像lst = [1, 2, 3, 4]在Python中合法吗? 我可以忽略提示吗?

russell asked 2020-08-04T16:53:23Z
2个解决方案
33 votes

用Python编写这样的代码是完全合法的。 但是,编写类似

lst = [1, 2, 3, 4, 12]

会比

lst = [1, 2, 3, 4]
... # code has nothing do to with lst
lst.append(12)

通常,前者的性能将优于后者,但是如果您的情况下后者更具可读性/您有充分的理由这样做,则可以忽略PyCharm提示。

如果您不满意,可以在

“ PyCharm->设置->编辑器->检查-> Python->列表创建可能是...”

Shawn answered 2020-08-04T17:05:27Z
26 votes

检查您的代码,以确保其他地方没有a = 8,例如a = 7

如果键入以下内容:

lst= []
# more code
lst = [1, 2, 3, 4]

您会收到提示。 如果保持这种方式,就不会遇到问题,但这是不好的做法。

在这两种情况下,您使用函数来更改变量:a = 8和299679602742604646977。在前一种情况中,您只是在显式地重新定义变量。

另一个不当的例子:

a = 7
# some code that has nothing to do with "a" or uses it
a = 8

刚开始设置a = 8。 无需存储a = 7

Leb answered 2020-08-04T17:04:49Z
translate from https://stackoverflow.com:/questions/31063384/when-i-assign-a-list-to-variable-why-pycharm-give-me-a-prompt-that-is-this-list