それは、不要な変数を作成せずにPythonでタプルを解凍することは可能ですか?

StackOverflow https://stackoverflow.com/questions/3802410

質問

次の関数を書くための方法ですが、私の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
valueslist又はtupleなどの割出し可能コレクションないという反復可能である場合、

は、溶液は、上記示されているように、動作します。

それは私は良いパフォーマンスかどうか知りませんが、きれいに見える。

a = (1, 2, 3, 4, 5)
x, y = a[0:2]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top