如何在删除列表中的重复项后将输出作为列表获取?

时间:2015-07-23 16:24:56

标签: python

以下是删除列表中重复IP地址的Python程序:

dup_ip = ['1.1.1.1','2.1.1.1','1.1.1.1','3.3.3.3','2.1.1.1','1.1.1.1','3.3.3.3',]
empty_list=[]
for i in dup_ip:
    if i not in empty_list:
        empty_list.append(i)
        print i

我得到的输出如下所示:

C:\Users\test\Desktop>python dup_list.py
1.1.1.1
2.1.1.1
3.3.3.3

C:\Users\test\Desktop>

但是我想把输出也作为一个列表,如下所示:

['1.1.1.1', '2.1.1.1','3.3.3.3']

怎么做?

2 个答案:

答案 0 :(得分:3)

您只需打印empty_list或更好的方法是将原始dup_ip转换为set,然后根据需要返回list:< / p>

>>> dup_ip  = ['1.1.1.1', '2.1.1.1', '1.1.1.1','3.3.3.3', '2.1.1.1', '1.1.1.1', '3.3.3.3']
>>> unique_ip = list(set(dup_ip))
>>> print unique_ip
['2.1.1.1', '1.1.1.1', '3.3.3.3']

答案 1 :(得分:0)

您的问题是您在添加后立即打印内循环中的每个元素。要一次打印列表,您需要在添加完所有内容后打印整个列表。所以:

dup_ip = ['1.1.1.1','2.1.1.1','1.1.1.1','3.3.3.3','2.1.1.1','1.1.1.1','3.3.3.3',]
empty_list=[]
for i in dup_ip:
    if i not in empty_list:
        empty_list.append(i)
print empty_list

这将根据您的需要将输出作为列表提供给您。