それは、不要な変数を作成せずにPythonでタプルを解凍することは可能ですか?
-
25-09-2019 - |
質問
次の関数を書くための方法ですが、私のIDEがそれを文句を言わないように、の列のは、未使用の変数のですか?
def get_selected_index(self):
(path, column) = self._tree_view.get_cursor()
return path[0]
この場合、私はタプルの2番目の項目を気にし、ちょうどそれがアンパックされたときに、それへの参照を破棄したくない。
解決
はPythonの_
はしばしば無視され、プレースホルダとして使用されます。
(path, _) = self._treeView.get_cursor()
タプルがインデックス可能であるとしてあなたはまた、開梱避けることができます。
def get_selected_index(self):
return self._treeView.get_cursor()[0][0]
他のヒント
あなたはなぜちょうど最初のものを抽出していない、2番目の項目を気にしない場合:
def get_selected_index(self):
path = self._treeView.get_cursor()[0]
return path[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
がlist
又はtuple
などの割出し可能コレクションないという反復可能である場合、は、溶液は、上記示されているように、動作します。
それは私は良いパフォーマンスかどうか知りませんが、きれいに見える。
a = (1, 2, 3, 4, 5)
x, y = a[0:2]
所属していません StackOverflow