让我们假设我们有一个列表,其中包含以字符串形式给出的人的姓名
people = ["john", "mike", "patrick", "vince", "mike"]
我希望有一个列表,而不是名称,将为这些人使用其他标识符,例如:
people_ids = ["p1", "p2", "p3", "p4", "p2"]
我想指出两件事:
1)id格式并不重要,编号可以从0开始,如果它更容易
2)当重复给定名称时,我希望在people_ids
我该如何实现这一目标?最有可能使用一些字典的东西吗?
答案 0 :(得分:1)
你在寻找类似的东西
people = ["john", "mike", "patrick", "vince", "mike", "foo"]
def build(l):
d = {}
i = 1
for p in people:
if not p in d:
d[p] = 'p' + str(i)
i += 1
yield d[p]
people_ids = list(build(people))