Python 如何将递增的数字附加到字典值?

Python 如何将递增的数字附加到字典值?,python,dictionary,Python,Dictionary,我试图在现有dict的基础上创建一个新字典:在这个新dict中,我想在每个值的末尾附加一个递增的整数。我的dict有几个键,但重复了个值 我正在使用以下代码,其中有一个示例说明了我要实现的目标: list_1 = [10,20,30,40,50,60] list_2 = ["a","a","b","b","c","c"] dict = dict(zip(list_1,list_2)) another_dict = {} counter = 0 for keys in dict.keys():

我试图在现有dict的基础上创建一个新字典:在这个新dict中,我想在每个值的末尾附加一个递增的整数。我的dict有几个键,但重复了个值

我正在使用以下代码,其中有一个示例说明了我要实现的目标:

list_1 = [10,20,30,40,50,60]
list_2 = ["a","a","b","b","c","c"]

dict = dict(zip(list_1,list_2))

another_dict = {}
counter = 0
for keys in dict.keys():
    if dict[keys] == "a" :
        counter += 1
        another_dict[keys] = "a_" + str(counter)
    if dict[keys] == "b":
        counter += 1
        another_dict[keys] = "b_" + str(counter)
    if dict[keys] == "c":
        counter += 1
        another_dict[keys] = "c_" + str(counter)

print(another_dict)
我得到了这个结果

*{40:'b_1',10:'a_2',50:'c_3',20:'a_4',60:'c_5',30:'b_6'}*

我想什么时候去

*{40:'b_1',10:'a_2',50:'c_1',20:'a_1',60:'c_2',30:'b_2'..

口述顺序并不重要。 谢谢你的帮助。 亲切的问候。
Ivo

对于每个不同的值,您需要一个不同的计数器。

这应该可以做到:

another_dict = {}
counters = {}
for key,value in dict.items():
    counter = counters.get(value, 0) + 1
    counters[value] = counter
    another_dict[key] = "%s_%d" % (value, counter)

计数器
跟踪每个值的计数。如果没有初始化,它从零开始(多亏了dictionary
.get()
调用)。

作为旁注,不要调用dictionary
dict
,否则在脚本的其余部分,您将永远无法再次调用
dict
构造函数。谢谢您指出了这一点。亲切的问候。IvoThere在这个例子中只有三个不同的值,而不是七(尽管有文本描述),所以我认为去掉数字“七”更清楚。如果您不同意,请随时回复我的编辑。在阅读您的评论后,我更改了帖子以使其更清晰。谢谢你的帮助。亲切的问候,伊沃思正是我想要的。非常感谢。亲切的问候。伊沃