Gli esempi da manuale di assegnazione multipla disimballaggio sono qualcosa di simile:multipla Assegnazione Apertura della confezione in Python quando non si conosce la lunghezza della sequenza
import numpy as NP
M = NP.arange(5)
a, b, c, d, e = M
# so of course, a = 0, b = 1, etc.
M = NP.arange(20).reshape(5, 4) # numpy 5x4 array
a, b, c, d, e = M
# here, a = M[0,:], b = M[1,:], etc. (ie, a single row of M is assigned each to a through e)
(My Q non è specfic NumPy, anzi, io preferirei un puro soluzione python)
W/r/t il pezzo di codice che sto guardando ora, vedo due complicazioni in questo scenario semplice:.
Io di solito non conoscerò la forma di M; e
voglio decomprimere un certo numero di elementi (sicuramente meno di tutti gli articoli) e voglio mettere il resto in un contenitore singolo
modo nuovo al 5x4 array sopra, quello che mi piacerebbe molto essere in grado di fare è, ad esempio, assegnare le prime tre righe di M a a, b e c rispettivamente (esattamente come sopra) e il resto delle righe (ho non ho idea di quanti saranno, solo alcuni interi positivi) in un unico contenitore, tutti_i_r est = [].
Non sono sicuro di averlo spiegato chiaramente; in ogni caso, se ricevo un feedback, correggerò prontamente la mia domanda.
La soluzione 2.x non funziona. Le cose che stai spacchettando non corrispondono. –
Per risolvere la soluzione 2.x, tutto ciò che serve è una parentesi intorno a e b, in modo che il numero di valori da assegnare corrispondenze. cioè (a, b), c = someseq [: 2], someseq [2:] ' – mjv