J'ai actuellement une structure qui est un dict: chaque valeur est une liste qui contient des valeurs numériques. Chacune de ces listes numériques contient ce que (pour emprunter un idiome SQL) vous pourriez appeler une clé primaire contenant les trois premières valeurs qui sont: une année, un identifiant de joueur et un identifiant d'équipe. C'est la clé pour le dict.Recommandation de structure de données Python?
Vous pouvez obtenir une ligne unique en faisant passer la valeur dans l'année, identification du joueur, et l'ID d'équipe comme ceci:
statline = stats[(2001, 'SEA', 'suzukic01')]
Ce qui donne quelque chose comme
[305, 20, 444, 330, 45]
Je d aimer modifier cette structure de données pour qu'elle soit rapidement additionnée de l'une ou l'autre de ces trois clés: ainsi vous pouvez facilement découper les totaux pour un index donné dans les listes numériques en passant UN de l'année, ID du joueur et ID de l'équipe, puis indice. Je veux être capable de faire quelque chose comme
hr_total = stats[year=2001, idx=3]
Où que IDX 3 correspond à la troisième colonne de la liste numérique (s) qui serait récupéré.
Des idées?
J'aime ce un peu, mais N'est-ce pas une mémoire intensive? Je suppose que vous ne stockez que trois références plutôt que trois copies de la valeur, mais quand même ... – Wells
C'est le design standard de Star Schema. Vous pouvez l'implémenter en SQL, ou shelve ou pure en mémoire. Il faut seulement un peu plus de stockage qu'une liste de faits. Plus précisément, il nécessite les dictionnaires supplémentaires - qui ne sont que des références aux objets de la collection de faits d'origine. –