2014-05-10 2 views
2

Étant donné deux chaînes de longueur égale, comment puis-je retourner le nombre de fois que les chaînes ont le même caractère à un index donné?Compte le nombre de correspondances entre deux chaînes python

Alors: count_matches("bob","boa") donnerait 2 comme indice 0 détient le même caractère et le fait indice 1.

Mais, count_matches('bob', 'bbo') ne retournera que 1 comme seul index où le caractère est le même dans les deux est l'index 0. Bien qu'il y ait deux 'b' s dans les deux, seul un de ceux-ci est à un index correspondant.

+0

Avez-vous déjà essayé quelque chose? – jonrsharpe

+0

Désolé, aurait dû préciser que je suppose que les chaînes ont la même longueur. – goodcow

Répondre

12

Je suppose que vous voulez dire le nombre d'indices où le caractère est le même dans les deux chaînes.

Par conséquent, je le ferais:

>>> sum(a==b for a, b in zip('bob', 'boa')) 
2 

Emballage qu'en fonction devrait être trivial.

+0

Echouerait pour 'sum (a == b pour a, b dans zip ('bob', 'bba'))'; à moins que ce soit le comportement attendu. – s16h

+0

@ s16h Je base ma réponse sur l'hypothèse que l'OP signifie le nombre de caractères correspondants parmi les indices correspondants. La communauté semble être d'accord que c'est le cas. –

+0

c'est incorrect, affiche 1 pour 'sum (a == b pour a, b dans zip ('bob', 'bbo'))' –

Questions connexes