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

时间:2010-09-27 09:15:34

标签: python tuples iterable-unpacking

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

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

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

4 个答案:

答案 0 :(得分:52)

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

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

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

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

答案 1 :(得分:4)

如果您不关心第二项,为什么不提取第一项:

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

答案 2 :(得分:0)

它看起来很漂亮,我不知道表现是否良好。

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

答案 3 :(得分:0)

是的,有可能。仍然接受_约定的答案,只是解压缩到占位符变量。

您可以通过itertools.islice避免这种情况:

from itertools import islice

values = (i for i in range(2))

res = next(islice(values, 1, None))  # 1

这将给出与下面相同的res

_, res = values

如上所示,该解决方案在values是可迭代且不是可索引集合(例如listtuple)时起作用。