Моя функция возвращает список, но не может вернуть длину списка.
Когда я возвращаю сам список (прокомментированный в приведенном ниже коде), он успешен, но при попытке вернуть длину списка не удается, но обычно это работает с другими списками, с которыми я работаю ?? !!
Я пытался использовать переменную подсчета, которую я увеличивал на 1 каждый раз, когда в список добавлялся подсписок, но при попытке напечатать счет все еще возникала ошибка ниже.Вы можете видеть это закомментированным и в коде.
def count_combinations(number, integers_available, integers):
combination_set = []
# count = 0
if sum(integers) == number:
combination_set.append(integers)
# count += 1
elif sum(integers) > number:
pass
elif integers_available == []:
pass
else:
for c in count_combinations(number, integers_available[:], integers+[integers_available[0]]):
combination_set.append(c)
# count += 1
for c in count_combinations(number, integers_available[1:], integers):
combination_set.append(c)
# count += 1
return len(combination_set)
# return combination_set
# return count
# Testing the code
number = 10
integers_available = [5, 2, 3]
print(count_combinations(number, integers_available, []))
Я ожидаю, что результат будет 4, поскольку список:
[[5, 5], [5, 2, 3], [2, 2, 2, 2, 2], [2, 2, 3, 3]]
Но я получаю следующую ошибку:
Traceback (most recent call last):
File "ask.py", line 22, in <module>
print(count_combinations(number, integers_available, []))
File "ask.py", line 12, in count_combinations
for c in count_combinations(number, integers_available[:], integers+[integers_available[0]]):
File "ask.py", line 12, in count_combinations
for c in count_combinations(number, integers_available[:], integers+[integers_available[0]]):
TypeError: 'int' object is not iterable