在Python中匹配两个逗号分隔的字符串并更正位置计数

时间:2014-06-09 12:30:51

标签: python python-3.x

希望得到以下问题的帮助。

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()。

提前致谢。

1 个答案:

答案 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中,TrueFalse可以分别视为10。因此,我们可以简单地比较相应的元素,并且可以将评估结果加在一起以获得总匹配数。