是否有可能在Python中解压一个元组而不创建不需要的变量?

问题描述:

有没有办法编写以下函数,以便我的IDE不会抱怨是一个未使用的变量?是否有可能在Python中解压一个元组而不创建不需要的变量?

def get_selected_index(self): 
    (path, column) = self._tree_view.get_cursor() 
    return path[0] 

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

在Python中,_通常用作忽略的占位符。

(path, _) = self._treeView.get_cursor() 

你也可以避免解压缩,因为元组是可索引的。

def get_selected_index(self): 
    return self._treeView.get_cursor()[0][0] 
+17

值得一提的是'_'是不是任何一种语法魔术,而是一个约定(当然,这是由IDE和pylint的认可的公约和Python约定是相当强的...) – detly 2010-09-27 09:18:30

+1

的Python会没有约定就没有东西! – fredley 2010-09-27 09:19:33

+2

这个约定有记录吗? – Nathan 2010-09-27 09:20:50

如果你不关心的第二个项目,为什么不直接提取的第一个:

def get_selected_index(self): 
    path = self._treeView.get_cursor()[0] 
    return path[0] 
+0

请注意,返回现在应该是'return path',而不是'return path [0]' – 2010-09-27 14:59:03

+3

这比较弱,因为它删除了只有两个项目的断言。 – 2010-09-28 00:39:10

+0

@Michael Mior:我回滚了你的编辑:根据原来的问题,它应该仍然是'path [0]'('path'似乎是一个序列本身) – Steven 2010-09-28 13:40:06

看起来很漂亮,我不知道是否有不错的表现。

a = (1, 2, 3, 4, 5) 
x, y = a[0:2]