E 'possibile decomprimere una tupla in Python senza creare variabili indesiderate?
-
25-09-2019 - |
Domanda
C'è un modo per scrivere la seguente funzione in modo che il mio IDE non si lamenta che Colonna è una variabile non utilizzato?
def get_selected_index(self):
(path, column) = self._tree_view.get_cursor()
return path[0]
In questo caso non mi interessa circa il secondo elemento della tupla e vogliono solo eliminare il riferimento ad esso quando è decompresso.
Soluzione
In Python il _
è spesso usato come un segnaposto ignorato.
(path, _) = self._treeView.get_cursor()
Si potrebbe anche evitare disfare come una tupla è indicizzabile.
def get_selected_index(self):
return self._treeView.get_cursor()[0][0]
Altri suggerimenti
Se non si preoccupano la seconda voce, perché non basta estrarre la prima:
def get_selected_index(self):
path = self._treeView.get_cursor()[0]
return path[0]
Sì, è possibile. La risposta accettata con _
convention ancora Spacchetta, solo per una variabile segnaposto.
È possibile evitare questo tramite itertools.islice
:
from itertools import islice
values = (i for i in range(2))
res = next(islice(values, 1, None)) # 1
Questo vi darà la stessa res
come di seguito:
_, res = values
La soluzione, come dimostrato sopra, funziona quando values
è un iterabile che non è una collezione indicizzabile come list
o tuple
.
sembra piuttosto, non so se una buona prestazione.
a = (1, 2, 3, 4, 5)
x, y = a[0:2]