Si je devais le code suivantRetour un dict spécifique à partir d'une liste des dicts
attributes = []
attributes.append({'attribute': 'noir', 'group': 'coloris', 'id': '8'})
attributes.append({'attribute': 's', 'group': 'taille_textile', 'id': '29'})
attributes.append({'attribute': 'm', 'group': 'taille_textile', 'id': '24'})
attributes.append({'attribute': 'l', 'group': 'taille_textile', 'id': '25'})
attributes.append({'attribute': 'xl', 'group': 'taille_textile', 'id': '26'})
et je voulais retourner un objet de la liste qui contenait un certain id, quelle serait la meilleure façon de le faire ?
Je sais qu'une solution serait d'utiliser la boucle for
comme celui-ci
def getItemById(id):
for i in attributes:
for k,v in i.items():
if (k == 'id' and v == id):
return i
Je suis sûr qu'il doit y avoir un moyen beaucoup plus élégant ou efficace de le faire autre que cela?
Y at-il une possibilité d'utiliser lambdas ici? cela donnerait-il un avantage de performance?
Si vous voulez accéder par 'id', pourquoi les mettre dans une liste, plutôt que dans un dictionnaire ** keyed ** par' id'? – jonrsharpe
http://stackoverflow.com/q/8653516/403554 –