0

私は2つのリストを持っています:

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

4

3 に答える 3

6

これらはセットであり、リストではありません。それらの差を計算できます。

list_ip = host_list - ip_value

戻り値

{'10.5.3.5', '10.3.24.45'}

編集済み:わかりました。2つのリストになりました。コードを次のように変更します。

list_ip = list(set(host_list) - set(ip_value))

戻り値

['10.5.3.5', '10.3.24.45']
于 2012-05-30T14:09:54.690 に答える
2

setを使用

another_list = list(set(host_list) - set(ip_value))
于 2012-05-30T14:15:06.747 に答える
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 と比較していて、host と ip を比較していません。host_list != ip_value であるため、次のステートメントは実行されません。

于 2012-05-30T14:43:32.453 に答える