我是编程新手,但我想做的基本上是这样的:
如果我有 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}
