是否可以在Python中解压缩元组而不创建不需要的变量?

Nat*_*han 33 python tuples iterable-unpacking

有没有办法编写以下函数,以便我的IDE不会抱怨该是未使用的变量?

def get_selected_index(self):
    (path, column) = self._tree_view.get_cursor()
    return path[0]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不关心元组中的第二项,只是想在解压缩时丢弃对它的引用.

ken*_*ytm 53

在Python中,_它通常用作被忽略的占位符.

(path, _) = self._treeView.get_cursor()
Run Code Online (Sandbox Code Playgroud)

您还可以避免解压缩,因为元组是可索引的.

def get_selected_index(self):
    return self._treeView.get_cursor()[0][0]
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`_`不是任何一种语法魔术,而是一种惯例(当然,它是IDE和pylint认可的惯例,而Python惯例非常强大......) (18认同)
  • @Gaius:我相信Haskell明确意味着"抛弃这个价值"; 在Python中,`_`仍然是一个赋值变量,理论上你可以像任何其他变量一样使用它. (7认同)
  • 没有约定,Python 将一事无成! (2认同)
  • 该惯例是否记录在案? (2认同)
  • python命令行解释器“神奇地”将_分配给上一次计算的结果,因此,如果您运行某些操作但忘记存储返回值,它将在`_`变量中为您捕获。在进行交互式工作时这是很有用的。在上述情况下,我可能会做索引而不是解包。 (2认同)