a_list = [1, 2, 3, 1, 2, 3, 1, 2, 3]
我想遍历a_list
并查找重复项。如果找到重复项,我想对该重复项进行计算。如果找到同一实例的另一个副本,则应执行不同的计算。
例如:
开始迭代a_list
:
1, 2, 3, 1 [Instance of duplicate 1 found - Perform 1+1 on instance]
继续迭代...
1, 2, 3, 1, 2 [Instance of duplicate 2 found - Perform 2+2 on instance]
继续迭代...
1, 2, 3, 1, 2, 3 [Instance of duplicate 3 found - Perform 3+3 on instance]
继续迭代...
1, 2, 3, 1, 2, 3, 1 [Second instance of duplicate 1 found - Perform 1+1+1 on instance]
继续迭代...
1, 2, 3, 1, 2, 3, 1, 2 [Second instance of duplicate 2 found - Perform 2+2+2 on instance]
继续迭代...
1, 2, 3, 1, 2, 3, 1, 2, 3 [Second instance of duplicate 3 found - Perform 3+3+3 on instance]
完成后,将创建一个包含所有计算的新列表:
new_list = [1, 2, 3, 2, 4, 6, 3, 6, 9]
有人可以向我解释如何查找重复项并计算这些重复项的实例,以便我可以对重复项的每个新实例执行不同的计算吗?
我将使用字典来跟踪已使用的值和次数。
a_list = [1, 2, 3, 1, 2, 3, 1, 2, 3]
tracking_dict = {}
out_list = []
for item in a_list:
# checks if item has been seen before
if item in tracking_dict:
# add the number as many times as it has been seen
out_list.append(item + item * tracking_dict[item])
# since you've seen the number, increase the count by 1
tracking_dict[item] += 1
else:
# add it to the output list as-is
out_list.append(item)
# the item is new to this list
tracking_dict[item] = 1
print(out_list)
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句