J'ai une liste niforme d'objets en python:
class myClass(object):
def __init__(self, attr):
self.attr = attr
self.other = None
objs = [myClass (i) for i in range(10)]
Maintenant, je veux extraire une liste avec un attribut de cette classe (disons attr), afin de lui transmettre une fonction (pour tracer ces données par exemple)
Quelle est la façon Pythonique de le faire,
attr=[o.attr for o in objsm]
?
Peut-être dériver une liste et y ajouter une méthode, donc je peux utiliser un idiome comme
objs.getattribute("attr")
?
Vous pouvez également écrire:
attr=(o.attr for o in objsm)
De cette façon, vous obtenez un générateur qui conserve la mémoire. Pour plus d'avantages, regardez Generator Expressions .
attrs = [o.attr for o in objs]
était le bon code pour faire une liste comme celle que vous décrivez. N'essayez pas de sous-classer list
pour cela. Y a-t-il quelque chose que vous n'avez pas aimé dans cet extrait?