【发布时间】:2021-09-24 06:36:12
【问题描述】:
还有一个我似乎有问题的练习。我会说我做对了,但 Python 更清楚。
任务的主体是:
编写一个接受数字列表或元组的函数。返回一个 二元素列表,分别包含(分别) 偶数索引和奇数索引的总和。所以 调用函数 even_odd_sums([10, 20, 30, 40, 50, 60]) , 你会得到 [90, 120] 。
我的代码是:
def even_odd_sums(sequence):
sum_list = []
for i, v in enumerate(sequence):
if i % 2 == 0:
sum_list = sum_list.insert(0, sum(v))
else:
sum_list = sum_list.insert(1, sum(v))
return sum_list
print(even_odd_sums([10,20,30,40,50,60]))
结果是:
TypeError Traceback (most recent call last)
<ipython-input-60-14518295929c> in <module>
----> 1 print(even_odd_sums([10,20,30,40,50,60]))
<ipython-input-59-51fcb6e9a115> in even_odd_sums(sequence)
3 for i, v in enumerate(sequence):
4 if i % 2 == 0:
----> 5 sum_list = sum_list.insert(0, sum(v))
6 else:
7 sum_list = sum_list.insert(1, sum(v))
TypeError: 'int' object is not iterable
我试图在谷歌上找到解决方案,我尝试了其他方法来解决这个任务(“for i in range(len(sequence)),但我就是无法解决不可迭代对象问题
提前致谢!
【问题讨论】:
-
因为
v是来自迭代列表的单个值,所以你不能将它传递给sum,它需要传递一个序列,而不是单个值.. -
所以我必须不断将值添加到新列表中,以便它可以迭代而不是单个值?
标签: python list loops iteration enumerate