如何在python中同时执行两个循环?

时间:2012-05-30 14:07:54

标签: python python-3.x python-2.7

我有两个清单:

 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”}

3 个答案:

答案 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,因此永远不会执行下一个语句。