Estaba tratando de hacer coincidir dos cadenas usando el bucle for y tuve que usar las funciones range(len(my_string)) para recorrer sus índices.

Aquí está mi código:

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

Me preguntaba si hay una manera mejor o más eficiente de iter sobre los índices sin usar las funciones len() y range(), tal vez tratando la cadena como una lista.

algo así (sé que no es correcto):

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

1 respuesta

La mejor respuesta

Parece que no necesitas el índice en absoluto, así que solo Código Postal ellas:

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

Si necesitas el índice, Enumerar trabajos:

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

y se puede combinar con zip:

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