web-dev-qa-db-ja.com

pythonタプルの一部を無視する

(1,2,3,4)などのタプルがあり、変数aとbに1と3を割り当てたい場合は、

myTuple = (1,2,3)
a = my_Tuple[0]
b = myTuple[2]

または何かのような

(a,_,b,_) = myTuple

値をアンパックする方法はありますが、それらの1つ以上を無視しますか?

44
Jim Jeffries

私の意見ではあなたの解決策は大丈夫です。 _の割り当てに本当に問題がある場合は、インデックスのリストを定義して次のようにします。

a = (1, 2, 3, 4, 5)
idxs = [0, 3, 4]
a1, b1, c1 = (a[i] for i in idxs)
15
Bogdan

私は個人的にこう書きます:

a, _, b = myTuple

これはかなり一般的なイディオムなので、広く理解されています。構文は明確です。

60
NPE