【发布时间】:2021-09-28 08:01:55
【问题描述】:
我有一个列表,我正在尝试查找相似项目,将它们添加到临时列表中,找到相似项目的总和,然后将该结果添加到另一个列表中。我得到的结果是 [15,6] 以下但我期望得到 [20,12,16]?我似乎无法包含所有相似的数字,并且似乎无法让 for 循环包含相似项目的最后一个数字。到目前为止,请看一下以下代码,任何 cmets 会有所帮助吗?
start_list = [5,5,5,5,6,6,8,8]
temp_list = []
final_list = []
for i in range(len(start_list )-1):
if start_list [i] == start_list [i+1]:
temp_list.append(start_list [i])
else:
total = sum(temp_list)
final_list .append(total)
temp_list = []
print(final_list)
【问题讨论】:
-
什么被认为是相似的数字?
-
请注意 1/
range(n)在您的if块中从 0 迭代到 (n-1) 2/,您总是会错过其中一个相同的值(尝试用笔和纸运行看看...) -
如果你不关心列表的顺序可以
l = [5,5,5,5,6,6,8,8],然后[l.count(i)*i for i in set(l)] -
我提供的列表中的相似项目 [5,5,5,5,6,6,8,8] 是 5,6,8
-
@Musclemania05 你会如何处理
[5,5,5,5,6,6,8,8,5,5]?[20, 12, 16, 10]或[30, 12, 16]
标签: python python-3.x list loops iterator