modificare in modo python un elenco di gruppi di stringhe [duplicato]
mysql ha prodotto un elenco di tuple del modulo
a=[("1","2","3"),("4","5","6"),("7","8","9")]
Voglio un elenco di tuple del modulo
c=[("2","3"),("5","6"),("8","9")]
cioè gli ultimi due elementi di ogni tupla, così posso metterli in un mio comando sql executemany e ottenere il prossimo pezzo di dati.
la mia intuizione era che avrei potuto ottenere la matrice desiderata con il comando
c=[for b in a: b[1:]]
ma python, non gli piace. Perché non funziona, e qual è il modo più pitonico per ottenere l'elenco desiderato di tuple?
Risposte
Dato che vuoi gli ultimi due elementi di ogni tupla, l'uso della slice [1:] (come nelle altre risposte) non funzionerà quando il numero di elementi in ogni tupla non è 3.
Utilizza invece una comprensione dell'elenco con la fetta negativa di [:-2]:
a = [("1","2","3"),("4","5","6"),("7","8","9")]
a = [t[-2:] for t in a]
print(a)
Produzione:
[('2', '3'), ('5', '6'), ('8', '9')]
Hai la tua sintassi leggermente sbagliata, ma hai adottato l'approccio giusto.
c = [b[1:] for b in a]
Ti consigliamo di suddividere ogni ielemento in a:
>>> a = [("1","2","3"),("4","5","6"),("7","8","9")]
>>> [i[1:] for i in a]
[('2', '3'), ('5', '6'), ('8', '9')]
Puoi passare in questo modo, qui i loop andranno alla fine:
a=[(1,2,3),(4,5,6),(7,8,9)]
c=[b[1:] for b in a]
print(c)