Normalmente so che possiamo fare sum([func(x,x) for x in i])
, ma ho ottenuto un controllo if e due loop, quindi qual è il modo più poderoso di scrivere il codice qui sotto. puoi presumere che la somiglianza restituirà un numero indipendentemente dal tipo che gli dai. Puoi anche presumere che in realtà otterrà solo interi e caratteri.Python, il modo migliore per scrivere una somma di due per loop
x = 0
if isinstance(a, dict) or isinstance(a, list) or isinstance(a, tuple):
for i in a:
for j in b:
x += similarity (i,j)
Il 'if' non è all'interno di alcun ciclo, quindi ... perché deve essere all'interno della' somma'? – abarnert
Per il tuo esempio, invece della comprensione della lista di 'sum ([func (x, y) per x in i])' puoi usare 'sum (func (x, y) per x in i)' come generatore e non generare l'elenco intermedio –