Similar domande have been brought (confronto di buona velocità) su questo stesso subject. Speriamo che questa domanda sia diversa e aggiornata a Python 2.6 e 3.0.Velocità rispetto alla sicurezza e alla compatibilità rispetto ai metodi per eseguire concatenazioni di stringhe in Python
Finora credo che il metodo più veloce e più compatibile (tra le diverse versioni di Python) è la pianura semplice +
segno:
text = "whatever" + " you " + SAY
Ma io continuo a sentire e leggere non è sicuro e/o consigliabile.
Non sono nemmeno sicuro di quanti metodi ci sono per manipolare le stringhe! Potrei contare solo circa 4: c'è interpolation e tutte le sue opzioni secondarie come %
e format
e poi ci sono quelle semplici, join
e +
.
Infine, il new approach to string formatting, che è con format
, non è certamente buono per la compatibilità all'indietro allo stesso tempo rendendo %
non valido per la compatibilità diretta. Ma dovrebbe essere usato per ogni manipolazione di stringhe, inclusa ogni concatenazione, ogni volta che ci limitiamo solo a 3.x?
Beh, forse questo è più di un wiki che una domanda, ma desidero avere una risposta su che è l'uso corretto di ciascun metodo di manipolazione delle stringhe. E quale potrebbe essere generalmente utilizzato tenendo conto di ciascun obiettivo (il migliore in assoluto per compatibilità, velocità e sicurezza).
Grazie.
modifica: Non sono sicuro che dovrei accettare una risposta se non ritengo che risponda davvero alla domanda ... Ma il mio punto è che tutti e 3 insieme fanno un buon lavoro.
La risposta più votata di Daniel è in realtà quella che preferirei accettare, se non fosse per la "nota". Sono assolutamente in disaccordo con la "" la concatenazione usa strettamente l'operatore + per concatenare le stringhe " perché, per uno, join
esegue anche la concatenazione di stringhe e possiamo creare qualsiasi libreria arbitraria per quello.
Tutte le attuali 3 risposte sono preziose e preferisco avere qualche risposta mescolandole tutte. Mentre nessuno si offre volontario per farlo, immagino che scegliendo quello meno votato (ma più ampio di THC4k, che è più come un commento grande e molto gradito) posso attirare l'attenzione anche sugli altri.
Dove stai leggendo che '' + "non è sicuro e/o consigliabile"? –
@John per uno, leggi le 2 risposte di seguito. Entrambi scoraggiano usando '+'. – cregox
Forse interpretavo "consigliabile" in modo diverso da te. In ogni caso l'hai scritto prima che venissero scritte le risposte. Inoltre nessuna delle risposte indica che '+ =' è stato reso più veloce nei Python più recenti. Dove stai leggendo che '+' è "non sicuro"? –