Perché non riesco a unirmi a questa tupla in Python?
Domanda
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
Devo aderire per poterlo scrivere in un file di testo.
Soluzione
join
accetta solo elenchi di stringhe, quindi convertile prima
>>> e = ('ham', 5, 1, 'bird')
>>> ','.join(map(str,e))
'ham,5,1,bird'
O forse più pitonico
>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
Altri suggerimenti
join ()
funziona solo con stringhe, non con numeri interi. Usa ','. Join (str (i) per i in e)
.
Utilizza il modulo csv
. Salverà una domanda di follow-up su come gestire gli oggetti che contengono una virgola, seguita da un'altra sulla gestione degli oggetti che contengono il carattere che hai usato per citare / sfuggire alle virgole.
import csv
e = ('ham', 5, 1, 'bird')
with open('out.csv', 'wb') as f:
csv.writer(f).writerow(e)
Verifica:
print open('out.csv').read()
Output:
ham,5,1,bird
Potresti stare meglio semplicemente convertendo prima la tupla in un elenco:
e = ('ham', 5, 1, 'bird')
liste = list (e)
''. Join (Lista)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow