我有以下Python列表:
list1 = ['EW:G:B<
我想取这个列表的条目,并创建一个看起来像键值对的字典
dictionary_list1 = {'EW':'G:B<
如何解析/拆分list1上面的列表来执行此操作?我的第一直觉是尝试try1 = list1.split(“:”),但后来我认为无法检索此列表的“关键字”,因为有多个冒号:
什么是最pythonic的方式来做到这一点?
解决方法:
您可以指定要将第二个参数拆分为split的最大次数.
list1 = ['EW:G:B<
d = dict(item.split(':', 1) for item in list1)
结果:
>>> import pprint
>>> pprint.pprint(d)
{'CB': 'E:OWTOWTW',
'DS': 'f:115.5',
'EW': 'EE:KJERWEWERKJWE',
'GR': 'A:OUO-1-XXX-EGD:forthyFive:1:HMJeCXX:7',
'MA': 'A:0XT:i:0',
'MW': 'AA:0',
'PP': 'E:A,A
'SX': 'F:-111'}
如果您想跟踪非唯一键的值,例如’EW:G:B<< LADHFSSFAFFF'和'EW:EE:KJERWEWERKJWE',您可以向collections.defaultdict添加键:
import collections
d = collections.defaultdict(list)
for item in list1:
k,v = item.split(':', 1)
d[k].append(v)
结果:
>>> pprint.pprint(d)
{'CB': ['E:OWTOWTW'],
'DS': ['f:115.5'],
'EW': ['G:B<
'GR': ['A:OUO-1-XXX-EGD:forthyFive:1:HMJeCXX:7'],
'MA': ['A:0XT:i:0'],
'MW': ['AA:0'],
'PP': ['E:A,A
'SX': ['F:-111']}
标签:python,dictionary,split