Je vais avoir beaucoup d'objets similaires avec des paramètres similaires. Exemple de paramètres d'un objet serait quelque chose comme:Utilisation de listes et de dictionnaires pour stocker des informations temporaires
nom, booléen, nombre et liste.
Le nom doit être une valeur unique parmi tous les objets, contrairement aux valeurs des paramètres booléens, numériques et de liste.
Je pourrais stocker les données sous forme de liste de dictionnaires je suppose. Comme ça:
list = [
{'name':'a', 'bool':true, 'number':123, 'list':[1, 2, 3]},
{'name':'b', 'bool':false, 'number':143, 'list':[1, 3, 5]},
{'name':'c', 'bool':false, 'number':123, 'list':[1, 4, 5, 18]},
]
Quel serait le meilleur moyen de vérifier si le nom unique existe dans la liste des dictionnaires, avant de créer un autre dictionnaire dans cette liste? Dois-je faire une boucle dans la liste et vérifier quelle est la valeur de list [i] [nom]? Ce qui serait le plus rapide et le moins mémorable pour conserver et traiter ces informations, en supposant que différentes listes similaires pourraient être traitées simultanément dans différents threads/tâches et que leur taille pourrait être comprise entre 100 et 100 000 dictionnaires par liste. Dois-je stocker ces listes dans la base de données au lieu de la mémoire?
Je comprends que peut-être je ne devrais pas pensé à optimiser (stocker les informations et les fils) avant que le projet fonctionne, donc s'il vous plaît, répondez à la question nom unique de recherche d'abord :)
Merci, Alan
+1 à l'utilisation des dictionnaires, bien que si vos données internes ('{'bool': true, 'number': 123, 'list': [1, 2, 3]}') sont toujours les mêmes Dans le même ordre, j'utiliserais une liste pour réduire le stockage. donc 'data = {'a': [true, 123, [1,2,3]], 'b': [faux, 143, [1,3,5]]}'. De toute façon, je suis d'accord que la façon la plus simple de vérifier serait juste si "potential_new_key dans les données: #do stuff" – nearlymonolith
Awesome! Merci! N'a pas lu les docs python aussi près que je pouvais deviner :) –
Oh et bien sûr je n'utiliserai pas de variables comme list ou dict ou boolean. Je les ai utilisés ici juste pour vous donner une idée du type de données que je prévois de stocker. –