Pho*_*ght 9 python dictionary split list-comprehension string-split
我觉得这很简单,我接近解决方案,但我已经堆积,无法在互联网上找到建议.
我的列表看起来像:
my_list = ['name1@1111', 'name2@2222', 'name3@3333']
Run Code Online (Sandbox Code Playgroud)
通常,列表的每个元素都具有以下形式:namex@some_number.
我想用漂亮的方式制作字典,那就是key = namex和value = some_number.我可以通过以下方式完成:
md = {}
for item in arguments:
md[item.split('@')[0]] = item.split('@')[1]
Run Code Online (Sandbox Code Playgroud)
但我想在一行中完成它,列表理解或其他.我试过跟随,我想我离我想要的不远.
md2 = dict( (k,v) for k,v in item.split('@') for item in arguments )
Run Code Online (Sandbox Code Playgroud)
但是,我收到了错误:ValueError: too many values to unpack.不知道如何摆脱这种局面.
Cor*_*mer 15
实际上,您不需要创建元组的额外步骤
>>> my_list = ['name1@1111', 'name2@2222', 'name3@3333']
>>> dict(i.split('@') for i in my_list)
{'name3': '3333', 'name1': '1111', 'name2': '2222'}
Run Code Online (Sandbox Code Playgroud)