給定這樣的字典串列
a_list = [{'name':'jennifer','roll_no':22}, {'name':'kristina','roll_no':26},
{'name':'jennifer','roll_no':18}, {'name':'kristina','roll_no':33}]
這個怎么改名
a_list = [{'name':'jennifer','roll_no':22}, {'name':'kristina','roll_no':26},
{'name':'jennifer 1','roll_no':18}, {'name':'kristina 1','roll_no':33}]
uj5u.com熱心網友回復:
您想構建一個新的字典串列,但每當添加一個新字典時,它的'name'值已經存在,您想使用下一個可用選項。
有不同的方法,但一種是:
- 遍歷所有字典
a_list并將它們添加到新串列中 - 在添加它們之前,檢查一些使用名稱的暫存器,看看它們的名字是否在那里,如果沒有,就添加它;如果是這樣,獲取并增加與之關聯的數字并更新字典
所以,在代碼中:
a_list = [
{'name':'jennifer','roll_no':22}, {'name':'kristina','roll_no':26},
{'name':'jennifer','roll_no':18}, {'name':'kristina','roll_no':33}
]
names = {}
result = []
for d in a_list:
if (name := d['name']) not in names:
names[name] = 0
else:
names[name] = 1
d['name'] = f'{name} {names[name]}'
result.append(d)
print(result)
結果:
[{'name': 'jennifer', 'roll_no': 22}, {'name': 'kristina', 'roll_no': 26}, {'name': 'jennifer 1', 'roll_no': 18}, {'name': 'kristina 1', 'roll_no': 33}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447792.html
上一篇:比較字典中存盤的不同影像
