J'essayais de faire correspondre deux chaînes ensemble à l'aide de la boucle for et j'ai dû utiliser les fonctions range (len (my_string)) pour parcourir ses index.

Voici mon code:

my_string = 'something'
key = 'something else'
for i in range(len(my_list)):
    if my_string[i] == key[i]:
        # do something

Je me demandais s'il y avait un moyen meilleur ou plus efficace de parcourir les index sans utiliser les fonctions len () et range (), peut-être en traitant la chaîne comme une liste.

quelque chose comme ça (je sais que ce n'est pas correct):

for i in my_string:
    if my_string[i] == key[i]:
        # rest of the code
-1
FadeLights 3 nov. 2019 à 18:01

1 réponse

Meilleure réponse

Vous ne semblez pas avoir besoin de l'index du tout, alors juste Zip *: français leur:

for m, k in zip(my_string, key):
    if m == k:
        # rest of the code

Si vous avez besoin de l'index, énumérer travaux:

for i, m in enumerate(my_string):
    if m == key[i]:
        # rest of the code

et peut être combiné avec zip:

for i, (m, k) in enumerate(zip(my_string, key)):
    if m == k:
        # rest of the code
1
ShadowRanger 3 nov. 2019 à 15:03