2010-11-08 4 views
5

Qual è la sintassi corretta per aggiungere una tupla ricomposta a un elenco?Aggiunta di tuple agli elenchi

Per esempio, se ho avuto due liste:

>>> a = [(1,2,3),(4,5,6)] 
>>> b = [(0,0)] 

Poi mi aspetterei il seguente al lavoro:

>>> b.append((a[0][0],a[0,2])) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: list indices must be integers, not tuple 

Inoltre, quando mi informa che gli indici devono essere interi, come mai questo funziona?

>>> b.append((7,7)) 
>>> b 
[(0, 0), (7, 7)] 
+0

Puoi chiarire la tua modifica per dire che quell'errore di battitura era il problema di fondo? Al momento non è chiaro se la tua modifica sta chiarendo la domanda o identificando la causa principale dell'errore. –

risposta

4

avete provare a fare questo:

(a[0][0],a[0,2]) 
      ^^^ 

questo è come fare:

(a[0][0],a[(0,2)]) 

che, come l'errore detto: indici delle liste devono essere interi, non tupla

se non sbaglio, penso che volessi fare:

b.append((a[0][0],a[0][2])) 
0

a [0,2] è il tuo problema.

Non si lamenta dell'app, si dice che [0,2] non può essere utilizzato come indice per la lista a.

1

Il tuo problema è questo:

b.append((a[0][0],a[0,2])) 
        ^

si tenta di utilizzare l'indice tuple inesistente [0, 2] quando si intende [0][2]

1

I indici devono essere interi. È solo un errore di battitura in cui hai a[0,2] anziché a[0][2]. Il [0,2] è un tentativo di indice per tupla.