当我为变量分配一个列表时为什么Pycharm给我一个提示"这个列表创建可以重写为列表文字"?

rus*_*ell 46 python list pycharm

我是一名Python初学者并且有一个难题.当我写这样的代码时:

lst = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

Pycharm给我一个提示,"这个列表创建可以重写为列表文字".但如果被它取代了

lst = list([1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

Pycharm什么也没说.谁能告诉我为什么?

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

Sha*_*awn 38

在Python中编写类似的代码是完全合法的.但是,编写代码就像

lst = [1, 2, 3, 4, 12]
Run Code Online (Sandbox Code Playgroud)

会比"更好"

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

一般来说,前者比后者具有更好的性能,但如果后者在你的情况下更具可读性/你有充分的理由这样做,那么你可以忽略PyCharm提示.

如果它困扰你,你可以关闭此检查

"PyCharm-> settings-> editor-> inspection-> Python->列表创建可能是......"


Leb*_*Leb 28

检查您的代码,以确保您没有lst其他地方lst=[].

如果键入以下内容:

lst= []
# more code
lst = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

你会收到你得到的提示.如果你保持这种状态,你不会遇到问题,但这是不好的做法.

在这两种情况下,您使用函数来更改变量:list()append().在前一个中,您只是明确地重新定义变量.

另一个不恰当的例子:

a = 7
# some code that has nothing to do with "a" or uses it
a = 8
Run Code Online (Sandbox Code Playgroud)

a = 8开始.无需存储a = 7.