[{'id': '1', 'nama': 'fajar'}, {'id': '2', 'nama': 'fajar'},
{'id': '3', 'nama': 'fajar'}, {'id': '4', 'nama': 'fajar'},
{'id': '5', 'nama': 'sita'}, {'id': '6', 'nama': 'lia'},
{'id': '7', 'nama': 'indra'}, {'id': '8', 'nama': 'indra'},
{'id': '9', 'nama': 'indra'}, {'id': '10', 'nama': 'indra'}]
是否可以通过组名自动增加列名中的数字?我的预期结果是这样的:
fajar 0
fajar 1
fajar 2
fajar 3
sita 1
lia 1
英德拉0
indra 1
indra 2
indra 3
indra 4
谢谢
答案 0 :(得分:0)
我也不确定我是否明白你的意思。此外,如果我按照您的示例进行操作,是不是应该使用0
而不是1
的sita和lia? indra和fajar也以0
开头。
反正。这可能会有所帮助:
d = [{'id': '1', 'nama': 'fajar'}, {'id': '2', 'nama': 'fajar'}, {'id': '3', 'nama': 'fajar'}, {'id': '4', 'nama': 'fajar'}, {'id': '5', 'nama': 'sita'}, {'id': '6', 'nama': 'lia'}, {'id': '7', 'nama': 'indra'}, {'id': '8', 'nama': 'indra'}, {'id': '9', 'nama': 'indra'}, {'id': '10', 'nama': 'indra'}]
c = {}
for i in d:
if not i["nama"] in c:
c[i["nama"]] = 0
c[i["nama"]] += 1
i["nama"] += str(c[i["nama"]] - 1)
给予
[{'id': '1', 'nama': 'fajar0'},
{'id': '2', 'nama': 'fajar1'},
{'id': '3', 'nama': 'fajar2'},
{'id': '4', 'nama': 'fajar3'},
{'id': '5', 'nama': 'sita0'},
{'id': '6', 'nama': 'lia0'},
{'id': '7', 'nama': 'indra0'},
{'id': '8', 'nama': 'indra1'},
{'id': '9', 'nama': 'indra2'},
{'id': '10', 'nama': 'indra3'}]