我有两个清单:
host_list = ["10.3.11.250", "10.3.24.45", "10.5.3.5","10.3.4.5"]
ip_value = ["34.45.34.5", "10.3.11.250","10.3.4.5"]
我想检查host_list的数据是否存在于ip_value中,如果是,则将ip_value附加到另一个列表中。我这样做是检查以下代码:
for host,ip in zip(host_list ,ip_value):
if host_list == ip_value
list_ip = list_ip.append(ip)
但它什么都不做。为什么?以及list_ip应该返回什么 它将返回:{“10.3.11.250”,“10.3.4.5”}
答案 0 :(得分:6)
这些是集,而不是列表。您可以计算它们之间的差异:
list_ip = host_list - ip_value
返回
{'10.5.3.5', '10.3.24.45'}
已修改:好的,现在它们是两个列表。将代码更改为:
list_ip = list(set(host_list) - set(ip_value))
返回
['10.5.3.5', '10.3.24.45']
答案 1 :(得分:2)
使用set
s
another_list = list(set(host_list) - set(ip_value))
答案 2 :(得分:1)
要回答这个问题,为什么你提供的代码什么都不做:
for host,ip in zip(host_list ,ip_value):
if host_list == ip_value
list_ip = list_ip.append(ip)
您正在将host_list与ip_value进行比较,而不是将主机与ip进行比较。 host_list!= ip_value,因此永远不会执行下一个语句。