有人可以解释如何在列表中构造字典吗?例如,我有这本字典:
A = {'typeA': [12], 'typeB': [12, 13]}
我想得到这个:
A = {'typeA': [{12: []}], 'typeB': [{12: []}, {13: []}]}
我已经尝试过这样的事情:
listFinal = []
for key in A.keys
---- newDict = {}
---- for value in A[key]:
--------- newDict[value] = []
newDict[key].append(value)
但这是不对的... 这可能会有点令人困惑,我认为那不是那么优雅。很抱歉,如果这不是一个相关的问题。
答案 0 :(得分:0)
您可以通过dict理解做到这一点
a = {key: [{v: []} for v in A[key]] for key in A.keys()}
# outout {'typeA': [{12: []}], 'typeB': [{12: []}, {13: []}]}
另一个版本
a = {key: [{v: []} for v in value] for key, value in A.items()}
答案 1 :(得分:0)
我希望这能满足您的要求
A = {'typeA': [12], 'typeB': [12, 13]}
result = {}
for item in A.items():
result[item[0]] = [dict.fromkeys(item[1], [])]
print(result)
# {'typeA': [{12: []}], 'typeB': [{12: [], 13: []}]}
答案 2 :(得分:0)
如果您只想将每个值中的每个 item “转换”为带有空列表的单元素字典,则可以执行以下操作:
A = {'typeA': [12], 'typeB': [12, 13]}
for lst in A.values():
for i, val in enumerate(lst):
lst[i] = {val: []}
print(A)
礼物:
{'typeA': [{12: []}], 'typeB': [{12: []}, {13: []}]}
遵循您最初的想法,您可能会想要类似以下内容:
for key in A.keys():
listFinal = []
for value in A[key]:
newDict = {value: []}
listFinal.append(newDict)
A[key] = listFinal
哪个给出相同的输出