Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在Python中将所有名称转换为标识符_String_List_Python 2.7_Dictionary - Fatal编程技术网

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

String 在Python中将所有名称转换为标识符,string,list,python-2.7,dictionary,String,List,Python 2.7,Dictionary,假设我们有一个以字符串形式给出的人名列表 people = ["john", "mike", "patrick", "vince", "mike"] 我希望有一个列表,其中将使用该人员的其他标识符,而不是姓名,例如: people_ids = ["p1", "p2", "p3", "p4", "p2"] 我想指出两点: 1) id格式并不重要,编号可以从0开始,如果这使事情更简单的话 2) 当一个给定的名字被重复时,我希望相应的id也在people\u id 我如何做到这一点?很可能是在用字

假设我们有一个以字符串形式给出的人名列表

people = ["john", "mike", "patrick", "vince", "mike"]
我希望有一个列表,其中将使用该人员的其他标识符,而不是姓名,例如:

people_ids = ["p1", "p2", "p3", "p4", "p2"]
我想指出两点:

1) id格式并不重要,编号可以从0开始,如果这使事情更简单的话

2) 当一个给定的名字被重复时,我希望相应的id也在
people\u id


我如何做到这一点?很可能是在用字典里的东西,对吗?

你在找这样的东西吗

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

您想生成
人员ID
列表吗?使用
人员=[“john”、“mike”、“patrick”、“vince”、“mike”]
您可以将vince称为
人员[3]
。意思是他的“id”是
3
。然后问题就变成了为什么这还不够?你能给我们一个输入和输出的样本,并使用重复的名称吗?@MartijnPieters是的,我想生成
人员ID
,我目前没有任何样本输入,只是我在question@LennartRegebro很抱歉我不太明白你的意思comment@Xi谢谢你的回复,这似乎很好用。。。在
for
后面的第一行中,如果p不在d:
中,为什么不使用
,而不是
如果p不在d:
中,语法和逻辑是否存在差异?结果是一样的though@WolfgangKuehne
x不在y中
x不在y中
产生相同的字节码,因此使用哪个字节码无关紧要。这最终是个人喜好的问题。