首页 > 解决方案 > 如何获得列表中两个值之间的差异

问题描述

我试图得到 temp1 和 temp2 之间的差异,这将是10.25.60.156 和 10.22.17.180。由于 temp2 中的数据有括号,我一直收到此错误:

z = set(temp1).symmetric_difference(set(temp2))
TypeError: unhashable type: 'list'

. 我怎样才能得到这两者之间的区别,其中一个包含一个括号?提前致谢!

temp1 = ['10.25.39.70', '10.25.16.160', '10.25.60.156']
temp2 = [['10.25.16.160'], ['10.22.17.180'], ['10.25.39.70']]

z = set(temp1).symmetric_difference(set(temp2))
print(z)

标签: pythonlistsetset-difference

解决方案


temp1 = ['10.25.39.70', '10.25.16.160', '10.25.60.156']
temp2 = [['10.25.16.160'], ['10.22.17.180'], ['10.25.39.70']]

print( set(temp1).symmetric_difference(v[0] for v in temp2) )

印刷:

{'10.22.17.180', '10.25.60.156'}

推荐阅读