Python 给重复的名字后面加上编号

getdict([('Ann', 21), ('Ann', 22), ('Ann', 23), ('Bob', 20)])
返回结果为:{'Ann': 21, 'Ann2': 22, 'Ann3': 23, 'Bob': 20}

getdict([('Ann', 20), ('Ann', 20), ('Bob', 21), ('Bob', 21)])
返回结果为:{'Ann': 20, 'Ann2': 20, 'Bob': 21, 'Bob2': 21}

代码示例如下
有帮助望采纳~

img

a = [('Ann', 21), ('Ann', 22), ('Ann', 23), ('Bob', 20)]


def getdict(s):
    out = dict()
    for k, v in s:
        if k in out.keys():
            i = 2
            while k+str(i) in out.keys():
                i += 1
            out[k+str(i)] = v
        else:
            out[k] = v
    return out


print(getdict(a))