从字符串列表中拆分的字符串创建字典

9

我感觉这很简单,我已经接近解决方案了,但是我卡住了,在互联网上找不到建议。
我有一个列表,看起来像:

my_list = ['name1@1111', 'name2@2222', 'name3@3333']  

通常,列表的每个元素都有以下形式:namex@some_number
我希望以美观的方式创建字典,其key = namexvalue = some_number。我可以通过以下方式实现:

md = {}
for item in arguments:
    md[item.split('@')[0]] = item.split('@')[1]  

但我希望能够用列表推导式或其他方式只用一行完成。我试着做了以下操作,我认为离我想要的不远。

md2 = dict( (k,v) for k,v in item.split('@') for item in arguments )

然而,我遇到了错误:ValueError: too many values to unpack。不知道该怎么解决。
1个回答

15

实际上您不需要创建元组这个额外的步骤。

>>> my_list = ['name1@1111', 'name2@2222', 'name3@3333']
>>> dict(i.split('@') for i in my_list)
{'name3': '3333', 'name1': '1111', 'name2': '2222'}

这太好了,谢谢!看起来我试图以过于复杂的方式去做。 - Photon Light

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接