Обычно я знаю, что мы можем сделать sum([func(x,x) for x in i])
, но я получил проверку if и два для циклов, так что самый пифонический способ написать код ниже. вы можете предположить, что сходство вернет число независимо от того, какой тип вы его дадите. Вы также можете предположить, что он действительно получит только ints и chars.Python, лучший способ написать сумму из двух для циклов
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)
'if' не находится внутри какого-либо цикла, поэтому ... зачем он должен находиться внутри' sum'? – abarnert
Для вашего примера вместо понимания списка 'sum ([func (x, y) для x в i])' вы можете использовать 'sum (func (x, y) для x в i)' как генератор и не генерировать промежуточный список – 2013-05-07 22:08:18