Python中列表的总和
我原以为你会回答我的问题,但事实并非如此 作为背景,我正在研究Euler项目,问题9: 我发现了错误Python中列表的总和,python,list,Python,List,我原以为你会回答我的问题,但事实并非如此 作为背景,我正在研究Euler项目,问题9: 我发现了错误 TypeError: unsupported operand type(s) for +: 'int' and 'list' 排队 while sum(triplesList) <= 1000: 我感谢你的帮助 sum只接受可数对象,不接受列表 triplesList是对其执行此操作时的列表列表: triplesList = [[a,b] for i in range(1)] 因此,
TypeError: unsupported operand type(s) for +: 'int' and 'list'
排队
while sum(triplesList) <= 1000:
我感谢你的帮助 sum只接受可数对象,不接受列表
triplesList是对其执行此操作时的列表列表:
triplesList = [[a,b] for i in range(1)]
因此,sum抱怨说它不知道如何添加列表列表,只知道添加整数列表
我相信这句话可以改为:
triplesList = [a, b]
换行
triplesList = [[a,b] for i in range(1)]
到
并移除
triplesList.append( a**2 + b **2)
这将产生[a,b,c]形式的1D列表,这是我从你的问题中得到的感觉
前者将生成表单列表
[[a,b], c]
你不能求和triplesList=[[a,b],因为范围1]中的i是一个列表,因此你不能求和triplesList。我不明白为什么在我把它列为列表之前我可以把它作为一个条件。因为你把它初始化为triplesList=[],所以它只是一个列表。它不会成为列表的列表,直到你执行我评论的列表理解。对不起。我的意思是,我不明白为什么我不能把这个总和作为一个条件,因为正是你所说的原因。错误消息出现在while语句中。不,不是。我可以保证sum[]是合法的,结果是0。while条件确实失败,但直到第二次迭代可以用于包含对“+”运算符有效的数字类型的任何iterable
triplesList.append( a**2 + b **2)
[[a,b], c]