Я работаю над некоторыми учебными упражнениями, изучая понимание python. Я натолкнулся на тот, который просит построить понимание, которое возвращает 3-кортеж всех комбинаций чисел в заданном наборе, которые суммируются до нуля - исключая тривиальный пример (0,0,0).фильтрация списков python-фильтров
Я пришел с этим:
def tupleNonTrivialSumation(s):
'''return a 3-tuple of x,y,z : x+y+z=0 & the list does not contain (0,0,0)'''
return tuple([(x,y,z) for x in s for y in s for z in s if x+y+z==0 if abs(x)+abs(y)+abs(z)!=0])`
есть более краткий способ, чтобы написать это? похоже, должен быть лучший способ проверить, равна ли x, y, z сумме нулю.
'[... if sum (sub) == 0 и sub! = (0, 0, 0)]'? Вам не нужно исключать «тривиальный пример (0,0,0)»? – Alexander
@ Александр Да, конечно. – Kasramvd