📜  Python|匹配元素计数

📅  最后修改于: 2022-05-13 01:55:23.280000             🧑  作者: Mango

Python|匹配元素计数

有时,在处理列表时,我们需要处理两个列表并搜索匹配项,并仅返回匹配项的索引计数。当主列表的大小非常大时,为这个过程查询整个列表是不可行的,因此只有匹配索引有助于解决这个问题。让我们讨论一些可以实现这一目标的方法。

方法 #1:使用列表理解 + index() + len()
这个问题可以通过使用Python的 index函数来获得想要的索引来解决,并且可以使用列表理解将其扩展到整个字符串。 len() 用于返回匹配的总数。

# Python3 code to demonstrate
# Matching elements count
# using list comprehension and index() + len()
  
# initializing lists
test_list1 = [5, 4, 1, 3, 2]
test_list2 = [1, 2]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# using list comprehension and index() + len()
# Matching elements count
res = len([test_list1.index(i) for i in test_list2])
  
# print result
print("The Match indices list count is : " + str(res))
输出 :
The original list 1 : [5, 4, 1, 3, 2]
The original list 2 : [1, 2]
The Match indices list count is : 2

方法 #2:使用enumerate() + len() + 列表理解
enumerate函数可用于为列表生成键值对,即它的索引和值,我们可以使用列表推导来存储它们。 len() 用于返回匹配的总数。

# Python3 code to demonstrate
# Matching elements count
# using list comprehension and enumerate() + len()
  
# initializing lists
test_list1 = [5, 4, 1, 3, 2]
test_list2 = [1, 2]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# using list comprehension and enumerate() + len()
# Matching elements count
res = len([key for key, val in enumerate(test_list1) if val in set(test_list2)])
  
# print result
print("The Match indices list count is : " + str(res))
输出 :
The original list 1 : [5, 4, 1, 3, 2]
The original list 2 : [1, 2]
The Match indices list count is : 2