如何使用python列表中的给定值生成key:value列表

如何使用python列表中的给定值生成key:value列表,python,puppet,facter,Python,Puppet,Facter,我必须解决以下任务。首先,我使用pyscard(与智能卡交互的python模块)查询连接到主机的智能卡读卡器。这工作得很好,给了我一个连接读者的列表 为了让puppet可以通过facter使用这个列表,我需要key:value形式的列表,我可以用json.dumps(list)转换它,并通过自定义事实使用它 实际问题是:如何将键(0..8)添加到pyscard列表中的给定值中 最后,输出应该类似于Reader 0:REINER SCT cyberJack ecom_a(0856136421)00

我必须解决以下任务。首先,我使用pyscard(与智能卡交互的python模块)查询连接到主机的智能卡读卡器。这工作得很好,给了我一个连接读者的列表

为了让puppet可以通过facter使用这个列表,我需要key:value形式的列表,我可以用json.dumps(list)转换它,并通过自定义事实使用它

实际问题是:如何将键(0..8)添加到pyscard列表中的给定值中

最后,输出应该类似于Reader 0:REINER SCT cyberJack ecom_a(0856136421)00


提前感谢

一种方法是使用
zip

>l0=[“读卡器一”、“读卡器二”、“读卡器三”]

dict(zip(范围(len(l0)),l0))


{0:'reader one',1:'reader two',2:'reader three

使用字典理解将列表转换为dict

lis = ["reader one", "reader two", "reader three"]
d={'reader '+str(k):v for k,v in enumerate(lis)}
输出:

{'reader 0': 'reader one',
 'reader 1': 'reader two',
 'reader 2': 'reader three'}

这就是
enumerate()
所做的(反转键和值)true,然后可以使用
dict(enumerate(l0))
所有答案都有效。因此,感谢大家回答我的第一个问题:-)