Dovrei prendere una lista di parole e contare tutte le parole in essa che sono 2 o più caratteri e dove il primo e l'ultimo carattere sono uguali.List comprehension e len() vs. simple for loop
mi si avvicinò con due possibili soluzioni:
result = 0
for word in words:
if len(word) >= 2 and word[0] == word[-1]:
result += 1
return result
vs.
return len([word for word in words if len(word) >= 2 and word[0] == word[-1]])
quale sarebbe la soluzione preferita? O ci sono anche quelli migliori?
Vorrei prendere # 2: ma formattato bene su più righe. Solo perché tu * puoi * scriverlo una riga non significa che dovresti (anche con generatori o compere, ecc.) –
Per favore, per favore, per favore misura. Si prega di usare 'timeit' per misurare questo. Si prega di misurare e pubblicare i risultati. –
@ S.Lott: non ha detto nulla sulle prestazioni. Il modo * preferito * di fare qualcosa non implica il modo * più veloce * di fare qualcosa. –