在Python中将所有名称转换为标识符

时间:2013-10-28 10:29:08

标签: string list python-2.7 dictionary

让我们假设我们有一个列表,其中包含以字符串形式给出的人的姓名

people = ["john", "mike", "patrick", "vince", "mike"]

我希望有一个列表,而不是名称,将为这些人使用其他标识符,例如:

people_ids = ["p1", "p2", "p3", "p4", "p2"]

我想指出两件事:

1)id格式并不重要,编号可以从0开始,如果它更容易

2)当重复给定名称时,我希望在people_ids

中的相同位置重复相应的id

我该如何实现这一目标?最有可能使用一些字典的东西吗?

1 个答案:

答案 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))