python查找列表重复项

python查找列表重复项

问:python找出列表元素重复个数和重复值
  1. 答:输出列表元素重复个数
    def get_element(data):
    dic = {}
    i = 0
    while i < len(data):
    if data[i] in dic:
    """
    循环查找列表元素,如果一个元素出现一次,value就等于1,多次出现,value就增加
    """
    dic[data[i]] += 1
    else:
    dic[data[i]] = 1
    i += 1
    for j, k in dic.items():
    if k > 1:
    print('data数组中重复的元素有%d,它的个数是%d个'%(j,k))
    print(dic)
    my_list =[1,2,3,4,2,4,2,3,4,5,6,23,23,32]
    get_element(my_list)
问:如何找出 python list 中有重复的项
  1. 答:可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务。
    list1 = [1,2,3,4,5]
    list2 = [4,5,6,7,8]
    print [l for l in list1 if l in list2]
    # [4,5]
    如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法。首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素。
    set1 = set(list1)
    set2 = set(list2)
    print set1 & set 2
    # {4,5}
  2. 答:def finddupl(lst):
        """找出 lst 中有重复的项
            (与重复次数无关,且与重复位置无关)
        """
        exists, dupl = set(), set()
        for item in lst:
            if item in exists:
                dupl.add(temp)
            else:
                exists.add(temp)
        return dupl
  3. 答:l = [1,1,2,2,2,3,3,3,3,5,6,4,6,4,5,5,5]
    d = {}
    for x in set(l):
    d[x] = l.count(x)
    print d
问:Python实现对列表中重复元素进行去重的方法小结
  1. 答:1、运用新建字典的方式,去除重复的键
    2、利用集合,直接将列表转化为集合,自动去重后转回列表。有一个问题,转换为集合的同时,数据无序了。
    3、用列表的推导式
python查找列表重复项
下载Doc文档

猜你喜欢