从字符串列表中的拆分字符串创建字典
Create dictionary from splitted strings from list of strings
我觉得这很简单,我接近解决方案,但我堆积如山,无法在 Internet 上找到建议。
我的列表如下所示:
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'}
我觉得这很简单,我接近解决方案,但我堆积如山,无法在 Internet 上找到建议。
我的列表如下所示:
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'}