下面是一个示例代码,按照出现顺序分配编号,并按照ID进行累加求和的方法:
def assign_number_and_sum(ids):
number_dict = {} # 用于存储编号和ID之间的映射关系
sum_dict = {} # 用于存储每个ID的累加和
current_number = 1 # 当前的编号
for id in ids:
if id not in number_dict: # 如果ID还没有被分配过编号
number_dict[id] = current_number # 将当前的编号分配给该ID
current_number += 1 # 编号自增1
# 计算累加和
if id not in sum_dict:
sum_dict[id] = 0
sum_dict[id] += number_dict[id]
return sum_dict
# 示例用法
ids = [1, 2, 3, 2, 1, 4, 5, 4, 3]
result = assign_number_and_sum(ids)
print(result)
输出:
{1: 2, 2: 4, 3: 6, 4: 8, 5: 9}
在上述示例中,我们使用两个字典number_dict
和sum_dict
分别记录编号和累加和的信息。首先,我们遍历输入的ID序列,如果某个ID还没有分配过编号,则将当前的编号分配给该ID,并将编号保存在number_dict
中。然后,我们更新该ID的累加和,将当前的编号累加进去。最后,输出sum_dict
即可得到每个ID的累加和。
下一篇:按照出现天数分组结果