如何比较变量并找到python中的差异

时间:2011-12-31 20:34:26

标签: python

我有两个变量readARP和readFPING,其中列出了一系列IP,我想比较一个。在比较它们之后,我想打印出差异,如果有的话。

readARP = scanProcess.read()
readFPING = fpingscanPocess.read()

>>> print readARP
192.168.1.1
192.168.1.100
192.168.1.1

>>> print readFPING
192.168.1.1
192.168.2.1
192.168.1.12

我想比较两者,然后打印192.168.2.1 192.168.1.12 192.168.1.100,因为它们是两者所独有的。

P.S。什么是“readFPING”在python中被称为我已经改编了术语变量

在找出不同之处后,我怎样才能将变量添加到变量中。 示例:192.168.1.2不在readFPING中,但我想添加它(创建主ip列表)

2 个答案:

答案 0 :(得分:3)

尽可能简单。您可以使用集合symmetric_difference在输入源中查找唯一元素。

readARP=scanProcess.read()
readFPING = fpingscanPocess.read()
print readARP
192.168.1.1
192.168.1.100
192.168.1.1

print readFPING
192.168.1.1
192.168.2.1
192.168.1.12

print '\n'.join(set(readARP.splitlines()).symmetric_difference(readFPING.splitlines()))
192.168.1.100
192.168.2.1
192.168.1.12

答案 1 :(得分:2)

for IP in readARP:
    if IP not in readFPING:
        print IP

for IP in readFPING:
    if IP not in readARP:
        print IP

显然有更简单的方法可以做到这一点,但由于你是Python的新手,我会保持简单。