我有一个嵌套的字典,其中的最低级别由一个列表组成,每个列表一个元素。我想将此级别从列表更改为字符串。 假设我有这样的字典:
dict = {id1:{'key11':['value11'],'key12':['value12']}, id2:{'key21':['value21'],'key22':['value22']}}
我如何获得:
dict = {id1:{'key11': 'value11','key12':'value12'}, id2:{'key21':'value21','key22':'value22'}}
其他问题: 如果键和值不遵循特定逻辑,但是每个元素都是唯一的并且您有很多元素,那么解决方案将如何更改?例如以下示例:
dictionary = {'ida':{'abc':['def'],'fgh':['ijk'] (...)}, 'idb':{'lmn':['opq'],'rst':['uvw']} (...)}
谢谢!
注意: 之所以得到这种结构,是因为我在代码的前面使用了列表/映射结构,以从XML文件中提取文本,从而产生列表值。
get_text = lambda x: x.text
content = [list(map(get_text, i)) for i in content]
答案 0 :(得分:5)
这有效:
dictionary = {'id1':{'key11':['value11'],'key12':['value12']}, 'id2':{'key21':['value21'],'key22':['value22']}}
new_dict = {key: {key1:value1[0] for key1, value1 in value.items()} for key, value in dictionary.items()}
new_dict
#{'id1': {'key11': 'value11', 'key12': 'value12'},
# 'id2': {'key21': 'value21', 'key22': 'value22'}}
此外,我不会使用像dict