【问题标题】:Count equal elements in two lists in python [duplicate]在python中计算两个列表中的相等元素[重复]
【发布时间】:2021-05-03 19:18:54
【问题描述】:

我想获取两个列表并想计算出现在两个列表中的值,但考虑到相同的位置

a = [1, 2, 3, 4, 5]
b = [4, 5, 3, 6, 5]

returnMatches(a, b)

例如会返回2

a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 3, 5]

returnMatches(a, b)

例如会返回4

是否有 pythonic 单行选项或者我真的需要遍历两个列表?

谢谢

【问题讨论】:

  • 你熟悉zip()吗?
  • 找到了,你是说。谢谢

标签: python list count


【解决方案1】:

查看zip 是什么以及list comprehension and generator expressions 的工作原理:

def count_matches(a, b):
  return sum(x == y for x, y in zip(a, b))

【讨论】:

    【解决方案2】:

    试试

    output = sum([x == y for x, y in zip(a, b)])
    

    我不确定是否需要进一步澄清。如果您不熟悉“列表理解”和zip(),可能需要查看它们。

    【讨论】:

      【解决方案3】:
      returnMatches = lambda a,b:sum([x==y for x,y in zip(a,b)]
      

      这与:

      def returnMatches(a, b):
          matches = 0
          for x, y in zip(a, b):
              matches += 1
          return matches
      

      查看zip() 了解有关该内置函数的更多信息

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 2011-05-07
        • 2019-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-22
        • 2021-02-04
        • 1970-01-01
        相关资源
        最近更新 更多