Python 如题所示,如何获取举例的数据结构?
data1 = [ {'编号A': '123456789', '编号B': '1234', '编号C': '789789789', '编号D': 'AA'},
{'编号A': '123456789', '编号B': '2345', '编号C': '789789789', '编号D': 'BB'},
{'编号A': '123456789', '编号B': '3456', '编号C': '789789789', '编号D': 'CC'},
{'编号A': '012345678', '编号B': '4567', '编号C': '789789789', '编号D': 'DD'},
{'编号A': '012345678', '编号B': '5678', '编号C': '789789789', '编号D': 'EE'},
{'编号A': '012345678', '编号B': '6789', '编号C': '678678678', '编号D': 'FF'},
]
data2 = {'789789789': ['AA', 'BB', 'DD']}
# 想实现的数据结构
result = [
{'123456789': ['AA', 'BB']},
{'012345678': ['DD']},
]
如上代码所示,data1,data2是举例的数据,result 是先要获取的数据
以data1中的编号C值去data2中查找,有几个编号A就返回几个结果,前提是编号C的值是相同的
有什么方法能实现吗 谢谢大佬了
回答:
奇怪的结构。
能不能改成这样呢:
python3">data2 = { '789789789': ['AA', 'BB', 'DD'] # 改成 {'AA', 'BB', 'DD'},速度可以更快些
}
# 想实现的数据结构
result = {
'123456789': ['AA', 'BB'],
'012345678': ['DD'],
}
如果可以,代码能简洁些:
python3">result = {}for i in data1:
A, C, D = i['编号A'], i['编号C'], i['编号D']
if C in data2 and D in data2[C]:
result.setdefault(A, []).append(D)
以上是 Python 如题所示,如何获取举例的数据结构? 的全部内容, 来源链接: utcz.com/p/938688.html