在Python中将配置文件列表转换为字典

用户名

我在python中有一个基本问题。我有这个清单:

['[A]',a,b,c,x,y,'[B]',d,f,'[C]',g,h,e]

我想将其转换成字典:

{A:[a,b,c,x,y],B:[d,f],C:[g,h,e]} 

有人有什么好主意吗?谢谢

乔恩·克莱门斯

如果您使用的是密钥在列表中的事实,则可以按列表或不按列表进行分组,将结果配对并将其提供给dict,例如:

from itertools import groupby, izip

data = [['A'],'a','b','c',['B'],'d','e','f',['C'],'g','h','e']
grouped = (next(g)[0] if k else list(g) for k, g in groupby(data, lambda L: isinstance(L, list)))
result = dict(izip(*[iter(grouped)] * 2))
#{'A': ['a', 'b', 'c'], 'C': ['g', 'h', 'e'], 'B': ['d', 'e', 'f']}

根据评论更新

...是字符串:['[A]','a','b','c','x','y','[B]','d','f','[ C]','g','h','e']和确定键的规则是它是一个字符串,例如'[someString]'

更改分组以使用正则表达式(根据需要进行调整),例如:

import re

grouped = (k.group(1) if k else list(g) for k, g in groupby(data, re.compile(r'\[(.*?)\]$').match))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章