提取嵌套字典python中的所有组合
我有一本字典,像:提取嵌套字典python中的所有组合,python,dictionary,pyspark,pyspark-sql,Python,Dictionary,Pyspark,Pyspark Sql,我有一本字典,像: {'6400': {'6401': '1.0', '6407': '0.3333333333333333', '6536': '0.0', '6448': '0.0'}} 我想制作一个类似于Pyspark的结构: ('6400',['6400','6401','1.0']) ('6400',['6400','6407','0.3333333333333333']) ('6400',['6400','6536','0.0']) ('6400',['6400','6448','
{'6400': {'6401': '1.0', '6407': '0.3333333333333333', '6536': '0.0', '6448': '0.0'}}
我想制作一个类似于Pyspark的结构:
('6400',['6400','6401','1.0'])
('6400',['6400','6407','0.3333333333333333'])
('6400',['6400','6536','0.0'])
('6400',['6400','6448','0.0'])
如果在python中执行此操作,则可以使用以下代码生成所需的结构
d = {'6400': {'6401': '1.0', '6407': '0.3333333333333333', '6536':
'0.0', '6448': '0.0'}}
result = []
for outer_e in d:
for inner_e in d[outer_e]:
e = [outer_e, inner_e, d[outer_e][inner_e]]
e = (outer_e, e)
result.append(e)
有点笨重,但另一种解决问题的方法:
In [1]: d = {'6400': {'6401': '1.0', '6407': '0.3333333333333333', '6536': '0.0'
...: , '6448': '0.0'}}
In [2]: map(lambda item: [(item[0], [item[0], *i]) for i in item[1].items()], d.items())
Out[2]: <map at 0x104563e48>
In [3]: list(_)
Out[3]:
[[('6400', ['6400', '6401', '1.0']),
('6400', ['6400', '6407', '0.3333333333333333']),
('6400', ['6400', '6536', '0.0']),
('6400', ['6400', '6448', '0.0'])]]
[1]中的d={'6400':{'6401':'1.0','6407':'0.3333','6536':'0.0'
...: , '6448': '0.0'}}
[2]中:映射(lambda项:[(项[0],[项[0],*i]),用于项[1]中的i.items(),d.items())
出[2]:
在[3]中:列表
出[3]:
[[('6400', ['6400', '6401', '1.0']),
('6400', ['6400', '6407', '0.3333333333333333']),
('6400', ['6400', '6536', '0.0']),
('6400', ['6400', '6448', '0.0'])]]
并且由于无序代码<代码> DICT< /Cord>对象,您不能依赖订单。< /P>可能的杰瑞米@ PyStPad标签的复制品。抱歉纠正的错字。您能用Python解决它并尝试将其适应PySpice吗?可以考虑使用DIST ITEM()、IdTraveScript(重复)和ZIP()。非常感谢您的帮助。