展开元组/列表时不需要的部分

jul*_*ria 4 python pylint variable-assignment

Python就是编写漂亮的代码.所以,pylint当我碰到某些东西时,我正在跑去检查我的代码的"美丽":

未使用的变量'myvar1'

从我的代码的这一部分:

for myvar1, myvar2 in mylist:
    # Do stuff just using myvar2
Run Code Online (Sandbox Code Playgroud)

mylist是一个元组列表,所以我将元组展开为两个变量(myvar1myvar2).我正在定义这两个变量只是为了解开第二个变量,因为我不需要另一个变量.

所以,这是我的问题:有没有办法告诉解释器打开元组,但不能解释第一部分(例如).在其他一些语言中,您可以执行以下操作:

for _, myvar in mylist:
    # Do stuff with myvar
Run Code Online (Sandbox Code Playgroud)

要么

for *, myvar in mylist:
    # Do stuff with myvar
Run Code Online (Sandbox Code Playgroud)

这意味着:我不关心元组的第一部分,我只需要第二部分.

注意:我知道这可能是我要求的选项:

for mytuple in mylist:
    # Do stuff with mytuple[1]
Run Code Online (Sandbox Code Playgroud)

但那可读性差得多.

gur*_*lex 8

除了@ RaymondHettinger的回答:如果他们的名字以单个下划线开头,Pylint也不会抱怨未使用的变量.这意味着您可以使用:

for _myvar1, myvar2 in mylist:
Run Code Online (Sandbox Code Playgroud)

充分利用两个世界:

  • 没有Pylint警告,
  • 和有关记录结构的信息

这也适用于函数/方法原型,并避免了有关未使用参数的警告,这些参数在从OO框架中的基类派生时通常可以获得.