Uso str.join()
:
s = ''.join(l)
La stringa su cui si chiama questo viene utilizzato come delimitatore tra le stringhe in l
:
>>> l=['a', 'b', 'c']
>>> ''.join(l)
'abc'
>>> '-'.join(l)
'a-b-c'
>>> ' - spam ham and eggs - '.join(l)
'a - spam ham and eggs - b - spam ham and eggs - c'
Utilizzando str.join()
è molto più veloce di concatenare gli elementi uno per uno, in quanto ciò deve creare un nuovo oggetto stringa per ogni concatenazione. str.join()
deve creare solo un nuovo oggetto stringa.
Si noti che str.join()
eseguirà il looping sulla sequenza di input due volte. Una volta per calcolare quanto deve essere grande la stringa di output e ancora una volta per costruirla. Come effetto collaterale, questo significa che l'utilizzo di una lista di comprensione, invece di un generatore di espressione è più veloce: offset del 25s piuttosto difficile da abbinare
slower_gen_expr = ' - '.join('{}: {}'.format(key, value) for key, value in some_dict)
faster_list_comp = ' - '.join(['{}: {}'.format(key, value) for key, value in some_dict])
fonte
2013-05-13 12:43:38
+1 Q/A ...... –
The Ninja colpisce ancora . –
Un buon collegamento: http://stackoverflow.com/questions/3055477/how-slow-is-pythons-string-concatenation-vs-str-join Mi piace come questa risposta sia così dettagliata per una domanda davvero semplice – jamylak