(приведенный ниже код не является рабочим кодом. Он просто для передачи идей) Мое намерение состоит в том, чтобы рекурсивно вызывать sumsubset (arr.remove (el), num, org), анализируя обновленный arr.Однако это приведет к нежелательному удалению исходного значения arr, что приведет к ошибке.Итак, я часто полагаюсь на модуль копирования, чувствуя себя несколько неловко.
Есть ли лучший способ парсинга обновленного arr без использования модуля копирования?Спасибо за ответ на мой первый вопрос.
arr=[1, 1, 2, 4, 4, 4, 7, 9, 9, 13, 13, 13, 15, 15, 16, 16, 16, 19, 19, 20]
num=36
import copy
def sumsubset(arr,num,org):
for el in arr:
if el==org: return [el]
tmp=copy.copy(arr)
tmp.remove(el)
result=[el]+sumsubset(tmp,num-el,org)
return result
a=sumsubset(arr,36,36)