Skip to main content
 首页 » 编程设计

python之计算 2 个列表之间的匹配项(考虑顺序)

2025年05月04日15luoye11

我是编程新手,但我想做的基本上是这样的:
如果我有 2 个列表:

ls1 = ("red", "red",  "red",  "black", "black", "black") 
ls2 = ("red", "red", "black", "black", " red",   "red" ) 

我想计算 ls1 中的特定项目有多少等于 ls2 上相同位置的项目。

但是每个项目需要分开计数。我不想要任何匹配项的“总计”,而是针对每个字符串。所以假设我想知道有多少“红色”匹配。它会给我答案 2,因为两个列表的位置 [0] 和 [1] 都是“红色”。如果我想要“黑色”,它会给我 1,因为只有在位置 [3] 两者都匹配为“黑色”。

我试图自己弄清楚并在这个论坛中进行了大量搜索,但找不到这个特定问题的答案。我什至不知道从哪里开始。 =/

请您参考如下方法:

  • 要在 Python 中迭代一个序列,您可以使用 for-loop .

  • 要并行迭代两个序列,您可以使用 zip .

  • 要存储结果,请使用 dictionary ,它将唯一键映射到值。

  • 当您不知道字典中的键是否存在时,您可以使用 dict.get 提供默认值。 .

将所有这些部分放在一起:

>>> d = {} 
>>> for s1, s2 in zip(ls1, ls2): 
...     if s1 == s2: 
...         d[s1] = d.get(s1, 0) + 1 
...          
>>> d 
{'red': 2, 'black': 1}