我觉得这很简单,我接近解决方案,但我已经堆积,无法在互联网上找到建议.
我的列表看起来像:
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: too many values to unpack
.不知道如何摆脱这种局面.
实际上,您不需要创建元组的额外步骤
>>> my_list = ['name1@1111', 'name2@2222', 'name3@3333'] >>> dict(i.split('@') for i in my_list) {'name3': '3333', 'name1': '1111', 'name2': '2222'}