请问有没有什么方法可以通过添加前缀或后缀来保留所有可重复(重复)的关键字?在下面的示例中,地址键重复了3次.它可能会有所不同(1到3次). 我希望获得预期输出中的输出,并添加后缀以使键唯一. 目前,更新函数正在覆盖密钥值.

list = ['name:John','age:25','Address:Chicago','Address:Phoenix','Address:Washington','email:John@email.com']
dic = {}
for i in list:
    j=i.split(':')
    dic.update({j[0]:j[1]})
print(dic)

当前输出: {‘name’:‘John’,‘age’:‘25’,‘Address’:‘Washington’,‘Email’:‘John@email.com’}

预期输出: {‘name’:‘John’,‘age’:‘25’,‘Address1’:‘Chicago’,‘Address2’:‘Phoenix’,‘Address3’:‘Washington’,‘Email’:‘John@email.com’}

try 了以下方法:

list = ['name:John','age:25','Address:Chicago','Address:Phoenix','Address:Washington','email:John@email.com']
dic = {}
for i in list:
    j=i.split(':')
    dic.update({j[0]:j[1]})
print(dic)

预期输出: {‘name’:‘John’,‘age’:‘25’,‘Address1’:‘Chicago’,‘Address2’:‘Phoenix’,‘Address3’:‘Washington’,‘Email’:‘John@email.com’}

推荐答案

您可以使用类似以下内容:

list_ = ['name:John','age:25','Address:Chicago','Address:Phoenix','Address:Washington','email:John@email.com']

dic = {}
for i in list_:
    j = i.split(':')
    key_ = j[0]
    count = 0 # counts the number of duplicates
    while key_ in dic:
        count += 1
        key_ = j[0] + str(count)
    dic[key_] = j[1]

输出:

{'name': 'John',
 'age': '25',
 'Address': 'Chicago',
 'Address1': 'Phoenix',
 'Address2': 'Washington',
 'email': 'John@email.com'}

PS.不要使用关键字list来命名变量,因为它会覆盖类型list

Python相关问答推荐

手动为pandas中的列上色

使用decorator 重复超载

Python中的Pool.starmap异常处理

如何观察cv2.erode()的中间过程?

inspect_asm不给出输出

PyQt5如何将pyuic 5生成的Python类添加到QStackedWidget中?

跟踪我已从数组中 Select 的样本的最有效方法

Python中MongoDB的BSON时间戳

如何使用scipy从频谱图中回归多个高斯峰?

即使在可见的情况下也不相互作用

rame中不兼容的d类型

抓取rotowire MLB球员新闻并使用Python形成表格

沿着数组中的轴计算真实条目

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

无法定位元素错误404

当独立的网络调用不应该互相阻塞时,'

ThreadPoolExecutor和单个线程的超时

numpy.unique如何消除重复列?

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

Gekko中基于时间的间隔约束