我想讀取一個csv文件列表在這個python程序。文件test.csv只包含一行不同的數字。我想找到總和等於500的數字的可能組合,並且在獲得輸出作爲列表之後,python程序將在我的test.csv文件中追加這個列表。不支持的操作數類型爲+:'int'和'list'
csv_file.py
import sys
import csv
import os
file_name="test.csv"
path1 = "C:\MAYANK\python p"
path2 = os.path.join(path1, file_name)
with open(path2, 'r') as csv_file:
reader = csv.reader(csv_file, delimiter=",")
row1 = list(reader)
def subset_sum(numbers, target, partial=list()):
s = sum(partial)
# check if the partial sum is equals to target
if s == target:
with open(path2, 'a') as csv_file1:
writer = csv.writer(csv_file1)
writer.writerow(partial)
if s >= target:
return # if we reach the number why bother to continue
for i in range(len(numbers)):
n = numbers[i]
remaining = numbers[i + 1:]
subset_sum(remaining, target, partial + [n])
if __name__ == '__main__':
subset_sum(row1, 500)
我寫的所有代碼,但得到這個錯誤:
Traceback (most recent call last):
File "csv_file.py", line 33, in <module>
subset_sum(row1, 500)
File "csv_file.py", line 30, in subset_sum
subset_sum(remaining, target, partial + [n])
File "csv_file.py", line 17, in subset_sum
s = sum(partial)
TypeError: unsupported operand type(s) for +: 'int' and 'list'
此功能對有效輸入正常工作,所以你沒有正確地得到輸入。 – TemporalWolf