如何找出 python list 中有重复的项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找出 python list 中有重复的项相关的知识,希望对你有一定的参考价值。

可以对第二个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
参考技术A 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

参考技术B 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 [重复]

【中文标题】字符串中的数字以“非数字”或错误形式出现 - Python [重复]【英文标题】:numbers in string come out as "not numbers" or fals - Python [duplicate] 【发布时间】:2013-06-30 04:07:32 【问题描述】:

所以,我在 python 中有一个字符串列表,我试图找出哪些键是数字。 我正在尝试使用list.[key].isdigit(),但它仅适用于'0' 例如:

list = ['0', '0', '0', '0.450000000000000', '0', '0', '0', '0.550000000000000']

只会确定'0' 是一个数字,但'0.45''0.55' 不是。 我该如何解决这个问题?

非常感谢

【问题讨论】:

查看此链接 - rosettacode.org/wiki/Determine_if_a_string_is_numeric#Python 【参考方案1】:

你可以使用异常处理和一个函数:

>>> def is_num(x):
...     try :
...         float(x)
...         return True
...     except ValueError:
...         return False
...     
>>> lis = ['0', '0', '0', '0.450000000000000', '0', '0', '0', '0.550000000000000']
>>> for x in lis:
...     print is_num(x)
...     
True
True
True
True
True
True
True
True

【讨论】:

【参考方案2】:

当空格和文本混合时,这可以应付:

import re

def ok(val):
    m = re.match('\s*\d+\.?\d*\s*', val)
    if m and m.group(0) == val:
        return True
    return False

list = ['0', '0.450000000000000', '0', '23x', ' 2.7 ', '2. 7', '1.2.3']

for val in list:
    print ok(val), val

# True 0
# True 0.450000000000000
# True 0
# False 23x
# True  2.7 
# False 2. 7
# False 1.2.3

【讨论】:

【参考方案3】:

您可以替换 '.'用零检查它是否是数字,假设你的列表中只有浮点数和整数......

>>> a
['0', '0.45']
>>> for each in a:
...     repl = each.replace('.','0')
...     if repl.isdigit():
...             print each
...
0
0.45

【讨论】:

以上是关于如何找出 python list 中有重复的项的主要内容,如果未能解决你的问题,请参考以下文章

在python中,如何找出句子中有多少组数字[重复]

python list找出一个元素的位置(重复元素怎么分别找出位置)

如何将两个List合并,且其中不允许出现重复的项

python找出字符串的重复两次的字符

字符串中的数字以“非数字”或错误形式出现 - Python [重复]

java 中 。数据库中有10万条记录 list中有5万条 ,怎样不通过for循环,找出数据库和list中相同的数据?