如何去除列表中的重复数字?

#-*- coding: utf-8 -*-
'''
    列表去重复的N种方法
'''
class Wipe_List(object):
    def __init__(self,listdata):
        self.data = listdata

#方法一
    def Wipe1(self):
        self.data.sort()
        tmplist=list()
        #用于判断最后两个数字是否重复
        flasg = 1
        for i in range(len(self.data)-1):
            y = i+1
            if self.data[i] <> self.data[y]:
                tmplist.append(self.data[i])
                flag = 1
            else:
                flag = 0
        if flag == 1:
            tmplist.append(self.data[-1])
        return tmplist
#方法二
    def Wipe2(self):
        #dict.fromkeys(seq,val=None)
        #创建并返回一个新字典,以序列seq作为键,val的值为value默认是None
        return {}.fromkeys(self.data).keys()

#方法三
    def Wipe3(self):
        return list(set(self.data))

#方法四
    def Wipe4(self):
        listdata1 = filter(lambda x:self.data.count(x) > 1,self.data)
        for i in listdata1:
            self.data.remove(i)
        return self.data
#方法五
    def Wipe5(self):
        count = 0
        flag = 0
        self.data.sort()
        for i in range(len(self.data)-1):
            y = i + 1
            if self.data[i] <> self.data[y]:
                self.data[count] = self.data[i]
                count = count+1
                flag = 1
            else:
                flag = 0
       #用于判断最后两个数字是否重复
        if flag == 1:
            self.data[count] = self.data[-1]
        return self.data[0:count+1]
                

test = Wipe_List([1,2,3,4,6,1])
print test.Wipe1()
print test.Wipe2()
print test.Wipe3()
print test.Wipe4()
print test.Wipe5()

其中方法四会把重复的数字都删除。

如何对列表进行过滤?

#-*- coding: utf-8 -*-

'''
        列表过滤的3种方法
'''
#方法一:
#迭代循环过滤
#for i in listdata
#    过滤表达式

listdata=[1,2,3,4,5,6,7,8]
for i in listdata:
    if i%2 == 1:
        print i

#方法二
#列表解析

print [x for x in listdata if x%2 == 1]


#方法三
#lamba表达式返回的是一个函数对象,再通过filter进行过滤
print filter(lambda x:x%2,listdata)