for循环中的项目编号列表

时间:2019-11-18 20:26:19

标签: python

我的python技能在这一方面很生疏。

我有一个物品清单。我想为他们创建一个ID并建立字典。

示例:

users = ["John","Peter","Alice"]

我想创建一个类似

的结果
users_dict = {"u1":"John","u2":"Peter","u3":"Alice"}

我很难弄清楚如何创建一个for循环,该循环将动态创建u +整数。我可能正在处理列表中的大量项目。

任何指导将不胜感激。

4 个答案:

答案 0 :(得分:12)

您可以将字典格式的字符串作为键来使用字典理解:

>>> {f"u{i}": user for i, user in enumerate(users, start=1)}

{'u1': 'John', 'u2': 'Peter', 'u3': 'Alice'}

这会遍历您的用户,为每个用户创建键u*,其中*是原始列表中的位置(根据您的期望输出从1开始),并为其分配用户名

答案 1 :(得分:2)

您可以尝试以下方法:

users = ["John","Peter","Alice"]

newusers = {}
for x in range(len(users)):
   newusers['u' + str(x+1)] = users[x]

newusers                                                                                                                                                                                          
# {'u1': 'John', 'u2': 'Peter', 'u3': 'Alice'}

答案 2 :(得分:0)

您可以打开Jupyter笔记本并进行播放(至少需要注意文档)。

从列表开始

users = ["John","Peter","Alice"]

然后您需要列表的大小

len(users)

现在,您需要列出从1到大小的所有整数。您可以通过范围获得它:

range(len(users))

因此,要获取以1开头的所有整数的列表,请执行以下操作:

list(range(1, len(users) + 1))

但是为了以后的处理,您可能更喜欢这种形式:

[i + 1 for i in range(len(users))]

因为您可以轻松添加前缀:

['u'+str(i + 1) for i in range(len(users))]

现在,您合并两个列表:

zip(['u'+str(i + 1) for i in range(len(users))], users)

并享受您的字典:

dict(zip(['u'+str(i + 1) for i in range(len(users))], users))

答案 3 :(得分:-1)

  

这很简单

# initializing lists 
test_values = ["John","Peter","Alice"] 
hint = "u"

使用天真的方法 将列表转换为字典

res = {} 
for index, value in enumerate(test_values):
    res[hint+str(index+1)] = value 
del test_values # memory efficient 

打印结果字典

print ("Resultant dictionary is : " + str(res))

然后答案就像

  

{“ u1”:“约翰”,“ u2”:Peter“,” u3“:”爱丽丝“}