You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Linq为列表重复值添加重复索引后缀的实现问题

为重复元素添加索引后缀的解决方案

我来帮你搞定这个需求——给列表里的重复项加上带索引的后缀,同时保留完整列表的所有元素。之前你遇到的问题应该是只筛选了重复项,现在我们要遍历整个列表,给每一个重复出现的元素动态添加对应序号的后缀。

核心思路

我们需要跟踪每个元素的出现次数:

  • 用一个字典记录每个元素已经出现的次数
  • 遍历原列表时,对每个元素判断是否已经出现过:
    • 第一次出现:直接保留原元素,同时记录计数为1
    • 重复出现:计数加1,然后把元素和当前计数拼接成元素 (计数)的格式

代码实现(Python)

def add_duplicate_suffix(original_list):
    # 用于记录每个元素的出现次数
    occurrence_count = {}
    processed_list = []
    
    for item in original_list:
        if item in occurrence_count:
            # 元素重复出现,计数加1并添加后缀
            occurrence_count[item] += 1
            processed_list.append(f"{item} ({occurrence_count[item]})")
        else:
            # 元素第一次出现,初始化计数并直接加入
            occurrence_count[item] = 1
            processed_list.append(item)
    
    return processed_list

# 测试你的示例场景
my_list = ["dog", "cat", "dog", "bird"]
print(add_duplicate_suffix(my_list))
# 输出结果: ['dog (1)', 'cat', 'dog (2)', 'bird']

代码说明

  • 这个方法会严格保留原列表的元素顺序,不会遗漏任何元素
  • 字典occurrence_count会实时更新每个元素的出现次数,确保后缀的序号准确对应重复次数
  • 不管元素重复多少次(比如3次、4次),都会自动生成元素 (3)、元素 (4)这样的格式,扩展性很好

内容的提问来源于stack exchange,提问作者Shahar Shokrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:25:12