希望得到以下问题的帮助。
Python具有更多内置序列匹配器功能。是否可以通过任何内置函数完成以下要求而不进行循环。
x = 'hu1_X','hu2_Y','hu3_H','hu4_H','hu5_H','hu7_H'
y = 'hu1_H','hu2_X','hu3_H','hu4_H','hu5_H','hu7_X'
用于比较上述字符串,最终匹配计数为3.
匹配为:'hu3_H'
,'hu4_H'
,'hu5_H'
。
任何想法,哪个内置功能可以使用?我们可以使用Python中的ZIP()。
提前致谢。
答案 0 :(得分:1)
你可以使用生成器表达式和内置sum
函数以及zip
,就像这样
x = 'hu1_X', 'hu2_Y', 'hu3_H', 'hu4_H', 'hu5_H', 'hu7_H'
y = 'hu1_H', 'hu2_X', 'hu3_H', 'hu4_H', 'hu5_H', 'hu7_X'
print(sum(item1 == item2 for item1, item2 in zip(x, y)))
# 3
这是有效的,因为在Python中,True
和False
可以分别视为1
和0
。因此,我们可以简单地比较相应的元素,并且可以将评估结果加在一起以获得总匹配数。