我有两个清单如下。我知道我可以使用set(list1)-set(list2)或反之亦然来打印与其他相应列表不同的列表。但是,我不想打印出完整的列表,我只想修改列表的那部分。你知道吗
例如,列表1:
[['Code', 'sID', 'dID', 'cID', 'ssID'], ['ABCD-00', 'ABCD-00-UNK', '358', '1234', '9999'], ['ABCD-01', 'ABCD-00-UNK', 160, '993', '587']]
清单2:
[['Code', 'sID', 'dID', 'cID', 'ssID', 'AddedColumn'], ['ABCD-00', 'ABCD-00-UNK', '358', '1234', '9999', 'AddedValue1'], ['ABCD-01', 'ABCD-00-UNK', 160, '993', 'ChangedValue', 'AddedValue2']]
如果我设置了差异,它会打印出整个列表。当'Code'、'sID'相同时,我希望输出只显示不同/添加/删除的列。你知道吗
编辑:
每个列表列表的第一个列表是标题。所以我想在“Code”、“sID”列中的值匹配时比较这些列表。你知道吗
期望输出:
Added - ['AddedColumn', 'AddedValue1', 'AddedValue2']
Deleted - []
Changed - ['Code', 'ABCD-01', 'ssID', 'ChangeValue']
像这样或更简单的东西也可以。你知道吗
使用^{} 计算列表是如何更改的:
此简单设置仅列出已添加、删除或替换的内容:
但是matcher还提供了没有改变的内容;为了简化演示,我忽略了
equal
标记。它显示了如何添加两个元素,以及如何用另两个元素替换一个元素。你知道吗set(a) - set(b)
返回列表a中的元素,而不是列表b中的元素。若要查看添加到列表中的元素,请使用set(newList) - set(oldList)
;若要查看从列表中删除的元素,请使用set(oldList) - set(newList)
。你知道吗如果在python3中的列表上应用
set
(我不知道python2),则无法应用,您将得到以下错误:TypeError: unhashable type: 'list'
。因此,您必须将其应用于每个相应的子列表。你知道吗相关问题 更多 >
编程相关推荐