【问题标题】:How can I create a function in python that counts the coincidences between two lists? [duplicate]如何在 python 中创建一个函数来计算两个列表之间的重合? [复制]
【发布时间】:2018-06-14 11:32:43
【问题描述】:

如果在第一个列表中有重复的元素,并且在第二个列表中也出现了这个元素,这可能算作1巧合

例子:

>>> comptaCoincidencies(['verd', 'groc', 'blau', 'vermell'], ['marro', 'blau', 'blanc', 'negre']) 
0 
>>> comptaCoincidencies(['verd', 'groc', 'blau', 'vermell'], ['blanc', 'negre', 'verd', 'groc']) 
2
>>> comptaCoincidencies(['verd', 'groc', 'blau', 'vermell'], ['vermell', 'blau', 'groc', 'verd']) 
4
>>> comptaCoincidencies(['verd', 'verd', 'verd', 'verd'], ['vermell', 'blau', 'groc', 'verd']) 
1

我已经这样做了:

def comptaCoincidencies(l1, l2):
    """
    Donades dues llistes, retorna el nombre d'elements coincidents entre le llistes
    >>> comptaCoincidencies(["verd", "verd"], ["blau", "blau"])
    0
    >>> comptaCoincidencies(["verd", "vermell"], ["verd", "blau"])
    1
    >>> comptaCoincidencies(["verd", "blau"], ["blau", "verd"])
    2
    """
    comptador = 0
    for i in range(0, len(l1)):
        if l1[i] in l2:
            comptador = comptador + 1
    return comptador

【问题讨论】:

    标签: python


    【解决方案1】:

    这将返回一组重复的元素

    set(filter(set(lst1).__contains__, lst2))
    

    添加 len 将计算其长度,从而计算重复元素的数量

    len(set(filter(set(lst1).__contains__, lst2)))
    

    根据@Willem Van Onsem评论更新

    set(lst1) & set(lst2)
    

    【讨论】:

    • set(lst1) & set(lst2) 有什么问题。话虽如此,不要回答显示零努力的问题......
    • 你是对的,兄弟 0 努力,但我认为这是他的第一个问题,可能是编程的第一步,所以为什么不帮助他,下次他会问一个包含努力在内的格式良好的问题
    • 因为下一次,人们可以创建一个帐户,并假装它是第一次。此外,它给人一种错误的印象,即我们回答了 0 努力的问题,因此会提出更多的 0 努力的问题。
    • @WillemVanOnsem 你绝对是对的,现在我们的朋友知道它是如何工作的,他向我们展示了他的努力,我喜欢你简历中的注释
    • @taoufikA: 好吧,我没有 dv Q(我只发布了 dv 页面的链接):-),老实说 :)。
    猜你喜欢
    • 2018-08-12
    • 2018-04-15
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2014-07-08
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多