川酒厄 2022-05-06 13:42 采纳率: 65%
浏览 36
已结题

一个list里面有多个字典,每个字典的key都一样,但是如果出现了不同的value则为其编上序号,请问如何用python实现该功能?

比如原数据是这样的:
list = [
{'a': 10, 'b': 15, 'c': 17},
{'a': 10, 'b': 19, 'c': 28},
{'a': 12, 'b': 16, 'c': 15},
{'a': 10, 'b': 42, 'c': 75}
]

我想要得到这样的结果:
list = [
{'a': 10(1), 'b': 15, 'c': 17},
{'a': 10(2), 'b': 19, 'c': 28},
{'a': 12, 'b': 16, 'c': 15},
{'a': 10(3), 'b': 42, 'c': 75}
]

请问这样用python该如何做到呢?十分感谢回答

  • 写回答

2条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-05-06 14:07
    关注
    list1 = [
    {'a': 10, 'b': 15, 'c': 17},
    {'a': 10, 'b': 19, 'c': 28},
    {'a': 12, 'b': 16, 'c': 15},
    {'a': 10, 'b': 42, 'c': 75}
    ]
    for i in range(len(list1)):
        for key, value in list1[i].items():
            count = 1
            temp = list1[i][key]
            for j in range(i+1, len(list1)):
                print(temp, list1[j][key])
                if temp == list1[j][key]:
                    if temp == list1[i][key]:
                        list1[i][key] = str(value) + str('({})'.format(count))
                    count += 1
                    list1[j][key] = str(value) + str('({})'.format(count))
                    #break
    print(list1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 已采纳回答 5月6日
  • 创建了问题 5月6日

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi