que python modificar el elemento en la lista, guardar de nuevo en la lista




pandas python tutorial español pdf (3)

Tengo la corazonada de que necesito acceder a un elemento en una lista (de cadenas), modificar ese elemento (como una cadena) y ponerlo nuevamente en la lista en el mismo índice

Tengo dificultades para volver a colocar un artículo en el mismo índice

for item in list:
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[item] = item
        print item

ahora recibo un error

TypeError: list indices must be integers, not str

debido a esta list[item] = item líneas list[item] = item

que tiene sentido! pero no sé cómo volver a poner el artículo en la lista en ese mismo índice usando Python

¿cuál es la sintaxis para esto? Idealmente, el bucle for puede realizar un seguimiento del índice en el que me encuentro actualmente


Answer #1

Un modismo común para cambiar cada elemento de una lista se ve así:

for i in range(len(L)):
    item = L[i]
    # ... compute some result based on item ...
    L[i] = result

Esto se puede volver a escribir usando enumerar () como:

for i, item in enumerate(L):
    # ... compute some result based on item ...
    L[i] = result

Ver enumerate .


Answer #2

Podrías hacer esto:

for idx, item in enumerate(list):
   if 'foo' in item:
       item = replace_all(...)
       list[idx] = item

Answer #3

Necesitas usar la función de enumerar: python docs

for place, item in enumerate(list):
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[place] = item
        print item

Además, es una mala idea usar la lista de palabras como una variable, debido a que es una palabra reservada en python.

Como tenía problemas con enumerate, una alternativa de la biblioteca itertools :

for place, item in itertools.zip(itertools.count(0), list):
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[place] = item
        print item






for-loop