我觉得这很简单,我接近解决方案,但是我堆积起来,在互联网上找不到建议.
我的列表看起来像:
我的列表看起来像:
my_list = ['name1@1111','name2@2222','name3@3333']
通常,列表的每个元素都具有以下形式:namex @ some_number.
我想用很漂亮的方式来做字典,其中key = namex和value = 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:太多值要解压缩.不知道如何摆脱这个.
解决方法
您实际上不需要创建元组的额外步骤
>>> my_list = ['name1@1111','name3@3333'] >>> dict(i.split('@') for i in my_list) {'name3': '3333','name1': '1111','name2': '2222'}