Esiste un modo migliore per scrivere il seguente:sintassi for-loop migliore per il rilevamento di sequenze vuote?
row_counter = 0
for item in iterable_sequence:
# do stuff with the item
counter += 1
if not row_counter:
# handle the empty-sequence-case
Si prega di tenere presente che non posso usare len (iterable_sequence) perché 1) le lunghezze non tutte le sequenze sono note; 2) in alcuni casi chiamare len() può innescare il caricamento degli elementi della sequenza in memoria (come nel caso dei risultati di query sql).
La ragione per cui chiedo è che sono semplicemente curioso di sapere se c'è un modo per rendere più conciso e idiomatico. Quello che sto cercando è lungo le linee di:
for item in sequence:
#process item
*else*:
#handle the empty sequence case
(supponendo che "altra cosa" qui lavorato solo su sequenze vuote, che so che non lo fa)
un modo migliore per scriverlo - a quale scopo? – canavanin
per renderlo più conciso e dall'aspetto idiomatico. (aggiungerò questo alla mia domanda) –
Un ORM potrebbe rispondere per te; qualcosa come i metodi '.fetchone()' o '.first()' di DB-API restituiscono 'None' se il set di risultati è vuoto (nessuna riga). – jfs