Python–列表中匹配元素的数量(包括重复项)
给定两个列表,计算两个列表中相似的所有元素,包括重复的。
输入 : test_list1 = [3,5,6,7,2,3,5],test_list2 = [5,5,3,9,8,5] 输出 : 4 解释 : 3 重复 2 次,5 两次,共计 4。
输入 : test_list1 = [3,5,6],test_list2 = [5,3,9] 输出 : 2 解释 : 3 重复 1 次,5 重复 1 次,共计 2。
方法#1:使用循环
这是执行这项任务的粗暴方式。在这种情况下,我们迭代其他列表的每个元素,同时迭代一个列表,并增加计数器。
Python 3
# Python3 code to demonstrate working of
# Count of matching elements among lists [ Including duplicates ]
# Using loop
# initializing lists
test_list1 = [3, 5, 6, 7, 2, 3]
test_list2 = [5, 5, 3, 9, 8]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# using loop to iterate each element
res = 0
for ele in test_list1:
if ele in test_list2:
res += 1
# printing result
print("All matching elements : " + str(res))
Output
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
方法 2:使用 sum() +生成器表达式
上述方法的结合被用来解决这个问题。在本文中,我们使用 sum()对元素进行计数,生成器表达式执行迭代任务。
Python 3
# Python3 code to demonstrate working of
# Count of matching elements among lists [ Including duplicates ]
# Using sum() + generator expression
# initializing lists
test_list1 = [3, 5, 6, 7, 2, 3]
test_list2 = [5, 5, 3, 9, 8]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# using sum to count occurrences
res = sum(ele in test_list1 for ele in test_list2)
# printing result
print("All matching elements : " + str(res))
Output
The original list 1 : [3, 5, 6, 7, 2, 3]
The original list 2 : [5, 5, 3, 9, 8]
All matching elements : 3
版权属于:月萌API www.moonapi.com,转载请注明出处