2008-11-21 6 views

Répondre

19

Rich,

listes et dicts sont des bêtes adaptées à différents besoins. Assurez-vous que vous n'utilisez pas de listes pour les recherches linéaires où les hachages dicts sont parfaits, parce que c'est beaucoup plus lent. De plus, si vous avez juste besoin d'une liste d'éléments à parcourir, n'utilisez pas dicts car cela prendra beaucoup plus d'espace que les listes. Cela peut sembler évident, mais choisir les structures de données correctes de façon algorithmique a des gains de performance beaucoup plus élevés que la micro-optimisation grâce à des schémas de code compilés plus efficaces, etc. Si vous recherchez dans une liste dans O (n) au lieu d'un dict en O (1), les micro-optimisations ne vous sauveront pas.

+3

+1 comparaison de la différence entre dicts et des listes. Notez que les programmeurs PHP n'obtiennent pas cette différence. –

6

Les tuples seront légèrement plus rapides à construire pour un petit nombre d'éléments. Bien qu'en réalité la plupart des gains seront en mémoire utilisés plutôt que des cycles de CPU, puisque les tuples nécessitent moins d'espace que les listes. Cela étant dit, la différence de performance devrait être négligeable, et en général vous ne devriez pas vous inquiéter de ces types de micro-optimisations tant que vous n'avez pas profilé votre code et identifié une section de code qui est un goulot d'étranglement.

2

La grande différence est que les tuples sont immuables, alors que les listes et les dictionnaires sont des structures de données mutables. Cela signifie que les tuples sont également plus rapides, donc si vous avez une collection d'éléments qui ne change pas, vous devriez les préférer sur les listes.