Supponiamo di avere una sequenza iterabile di oggetti thing
denominata things
. Ogni thing
ha un metodo is_whatever()
che restituisce True se soddisfa i criteri "qualunque". Voglio scoprire in modo efficiente se qualsiasi elemento in things
è qualsiasi cosa.È un modo efficace e pignolo per vedere se un elemento in un iterabile è vero per un determinato attributo?
Questo è quello che sto facendo ora:
any_item_is_whatever = True in (item.is_whatever() for item in items)
è che un modo efficace per farlo, vale a dire Python smetterà di generare gli elementi di iterable non appena trova il primo vero risultato? Stilisticamente, è pitone?
Grazie. Sono sollevato. 'True in' è brutto. – Ghopper21
Ho pensato che fosse piuttosto intelligente ... –
@NoctisSkytower: Corto anche i cortocircuiti quando viene utilizzato con un'espressione di generatore, quindi in realtà è abbastanza buono. Usare il modo idiomatico è di causa sia più leggibile che più veloce. –