在Python中是否可以解包元组而不创建多余变量?
有没有办法写这个函数,让我的开发工具不再提示column是个未使用的变量呢?
def get_selected_index(self):
(path, column) = self._tree_view.get_cursor()
return path[0]
在这种情况下,我并不关心元组中的第二个项目,只想在解包时丢弃对它的引用。
4 个回答
1
是的,这是可能的。接受的答案中使用的 _
这种写法仍然可以解包,只是会变成一个占位符变量。
你可以通过 itertools.islice
来避免这个问题:
from itertools import islice
values = (i for i in range(2))
res = next(islice(values, 1, None)) # 1
这样得到的 res
和下面的结果是一样的:
_, res = values
上面展示的解决方案适用于 values
是一种可迭代的对象,但不是像 list
或 tuple
这样的可以通过索引访问的集合。
4
如果你不在乎第二个项目,那为什么不直接提取第一个呢:
def get_selected_index(self):
path = self._treeView.get_cursor()[0]
return path[0]
57
在Python中,_
通常用作一个被忽略的占位符。
(path, _) = self._treeView.get_cursor()
你也可以不进行拆包,因为元组是可以通过索引来访问的。
def get_selected_index(self):
return self._treeView.get_cursor()[0][0]