Voglio verificare se il mio elenco di oggetti contiene un oggetto con un determinato valore di attributo.Controllare se Elenco di oggetti contiene un oggetto con un determinato valore di attributo
class Test:
def __init__(self, name):
self.name = name
# in main()
l = []
l.append(Test("t1"))
l.append(Test("t2"))
l.append(Test("t2"))
Voglio un modo per controllare se l'elenco contiene un oggetto con il nome t1 per esempio. Come può essere fatto? Ho trovato https://stackoverflow.com/a/598415/292291,
[x for x in myList if x.n == 30] # list of all matches
any(x.n == 30 for x in myList) # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30] # indices of all matches
def first(iterable, default=None):
for item in iterable:
return item
return default
first(x for x in myList if x.n == 30) # the first match, if any
Non voglio passare attraverso l'intera lista ogni volta, ho solo bisogno di sapere se ci sono 1 grado che corrisponde. sarà first(...)
o any(...)
o qualcos'altro farlo?
La funzione 'first()' è disponibile come built-in chiamata 'next()'. –