我有两本词典,想比较一下,列出它们的区别: 我想这样做,因为他们是字典,这是不那么容易后,检查其他答案在这里。另一种方法是把它们变成熊猫的数据帧?我想考虑同样的列,它们的顺序也不一样。所以检查应该按名字进行。你知道吗
例如,如果“KAEK”在名称、数据类型和长度上相同,则它们在第二个词典中的列出位置就要低得多,而不应仅仅因为两个词典中的顺序不同就认为它们不同。我该怎么做?你知道吗
pst.schema
{'properties': OrderedDict([('KAEK', 'str:12'),
('PROP_TYPE', 'str:4'),
('ORI_TYPE', 'int:1'),
('ORI_CODE', 'str:100'),
('DEC_ID', 'str:254'),
('ADDRESS', 'str:254'),
('NUM', 'str:9'),
('LEN', 'float:19.11'),
('AREA', 'float:19.11')]),
'geometry': 'Polygon'}
pst2.schema
{'properties': OrderedDict([('OBJECTID_1', 'int:9'),
('OBJECTID', 'int:9'),
('FID_PERIVL', 'int:9'),
('DESC_', 'str:254'),
('PROP_TYPE', 'str:4'),
('Shape_Leng', 'float:19.11'),
('Shape_Le_1', 'float:19.11'),
('Shape_Area', 'float:19.11'),
('PARCEL_COD', 'str:254'),
('KAEK', 'str:50'),
('NUM', 'int:4'),
('DEC_ID', 'int:4'),
('ADDRESS', 'int:4'),
('ORI_CODE', 'int:4'),
('ORI_TYPE', 'int:4')]),
'geometry': 'Polygon'}
我想把它们按顺序排列如下:
df = pd.DataFrame(pst2, columns=['NUM', 'DEC_ID','OBJECTID_1'])#place all the columns
#which doesn't work
但如果真是这样,两本词典之间任何不同列的空白都会造成混乱。 例如,如果第一列中的列是:
A,B,C
第二点:
A,B,B2,C
无法正确比较。因此,比较应该按名称进行。你知道吗
总结:比较这些,看看是否有任何组合不同于其他组合。其他列中不存在的额外列或类似的内容:
'ADDRESS', 'str:254' #from 1st dictionary
'ADDRESS', 'int:4' #from 2nd dictionary
试图显示属于哪个词典:
pprint(set(('d1', el) if el in d1.items() else ('d2', el) for el in d2))
{('d2', 'ADDRESS'),
('d2', 'DEC_ID'),
('d2', 'DESC_'),
('d2', 'FID_PERIVL'),
('d2', 'KAEK'),
('d2', 'NUM'),
('d2', 'OBJECTID'),
('d2', 'OBJECTID_1'),
('d2', 'ORI_CODE'),
('d2', 'ORI_TYPE'),
('d2', 'PARCEL_COD'),
('d2', 'PROP_TYPE'),
('d2', 'Shape_Area'),
('d2', 'Shape_Le_1'),
('d2', 'Shape_Leng')}
正确的做法是显示两部词典的不同之处。你知道吗
如果你只想找出两个有序图之间的对称差
那你想怎么用就怎么用?你知道吗
请求进一步编辑操作
相关问题 更多 >
编程相关推荐