Каждый элемент внутри вашего кортежа jj
сам по себе является кортежем, и вы не можете добавить кортеж (2,)
в 0
(sum()
начинается со значения 0, которое вы можете изменить с помощью второго аргумента ).
Вы должны суммировать каждый элемент в каждом кортеже в jj
.
>>> jj = ((2,), (2, 3))
>>> jj
((2,), (2, 3))
>>> find_sum = lambda iterable: sum([sum(i) for i in iterable])
>>> find_sum(jj)
7
Для кортежа вложенных объектов, таких как jj = [ (1,), (2, 0), (3, (1, 3, 5)) ]
, это будет работать:
def find_total_sum(iterable):
total = 0
def find_sum(iterable):
nonlocal total
for item in iterable:
if isinstance(item, int):
total += item
elif isinstance(item, (tuple, list)):
find_sum(item)
find_sum(iterable)
return total
print(find_total_sum([ (1,), (2, 0), (3, (1, 3, 5)) ]))