Se supone que debo tomar una lista de palabras y contar todas las palabras en ella que tienen 2 o más caracteres y donde el primer y el último carácter son iguales.Comprensión de lista y len() vs. simple for loop
me ocurrió con dos soluciones posibles:
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]])
Cuál sería la solución preferida? ¿O hay otros mejores?
Tomaría el n. ° 2: pero formateado muy bien en varias líneas. El hecho de que * pueda * escribirlo en una línea no significa que deba (incluso con generadores o for-comp, etc.) –
Por favor, por favor mida. Por favor usa 'timeit' para medir esto. Por favor mida y publique los resultados. –
@ S.Lott: No dijo nada sobre el rendimiento. La forma * preferida * de hacer algo no implica la forma * más rápida * de hacer algo. –