Me preguntaba si hay una forma de ejecutar el mapa en algo. La forma en que funciona el mapa es que requiere una iteración y aplica una función a cada elemento en esa iterable producción de una lista. ¿Hay alguna manera de que el mapa modifique el objeto iterable en sí?Python: mapa en el lugar
Respuesta
Se puede utilizar un lambda (o una def) o una lista mejor comprensión (si es suficiente):
[ do_things_on_iterable for item in iterable ]
De todos modos se puede querer ser más explícito con un bucle si las cosas se vuelven demasiado complejo.
Por ejemplo, puede hacer algo similar, pero que en mi humilde opinión es feo:
[ mylist.__setitem__(i,thing) for i,thing in enumerate(mylist) ]
Sólo tiene que escribir el código obvio para hacerlo.
for i, item in enumerate(sequence):
sequence[i] = f(item)
Ya lo intenté ... extrañamente es más lento que la comprensión de la lista. La razón por la que hice esta pregunta es porque pensé que el mapa sería más rápido que la lista de comprensión, y tampoco veo el sentido de crear una nueva lista, pero hasta ahora la comprensión de la lista es ganadora. – johannix
comprensión de la lista == sintaxis azúcar para el mapa – carl
¿Cómo se explica el rendimiento alcanzado entonces? el mapa era aproximadamente el doble de lento. – johannix
Es lo suficientemente simple para escribir:
def inmap(f, x):
for i, v in enumerate(x):
x[i] = f(v)
a = range(10)
inmap(lambda x: x**2, a)
print a
Una asignación rebanada es a menudo bien si tiene que modificar una lista en su lugar
mylist[:] = map(func, mylist)
- 1. Delphi: ¿cómo recorto un mapa de bits "en su lugar"?
- 2. Hexagonal mapa de autoorganización en Python
- 3. Cambiar el archivo de Python en su lugar
- 4. Usando Enthought Python en lugar del sistema Python
- 5. Python ordenar matrices paralelas en su lugar?
- 6. ¿Hay un equivalente in situ para 'mapa' en python?
- 7. dibujar ruta en el mapa en iphone
- 8. Cómo inicializar correctamente el Mapa de Mapa de Mapa?
- 9. Android MapActivity en el movimiento del mapa
- 10. python 2 en lugar de python 3 como el pitón predeterminado (temporal)?
- 11. Buscar en el mapa inverso
- 12. ¿Cuándo debería usar un mapa en lugar de un bucle for?
- 13. ¿Hay un mapa paralelo basado en procesos simple para python?
- 14. ¿Hay una estructura en Python similar al mapa C++ STL?
- 15. python: obteniendo solo 1 lugar decimal
- 16. Python: ¿Buen lugar para aprender sobre `multiprocesamiento.Manager`?
- 17. ¿Puedo tener un mapa de clave (en lugar de clave-valor) en Java?
- 18. El mapa de Google viene parcialmente, el área gris viene en lugar de las imágenes del servidor de google
- 19. Usando Pig/Hive para el procesamiento de datos en lugar del mapa directo de Java, ¿reduce el código?
- 20. ¿Doble mapa en haskell?
- 21. Función de mapa Python, pasando por referencia/valor?
- 22. Problema con el mapa()
- 23. Python reemplazar y sobrescribir en lugar de añadir
- 24. Python lambda regresar Ninguno en lugar de cadena vacía
- 25. python: ¿Por encima de usar clases en lugar de diccionarios?
- 26. ¿Por qué Python eleva TypeError en lugar de SyntaxError?
- 27. Python: ¿Devuelve flotación máxima en lugar de infs?
- 28. En Python, ¿cómo se usa el módulo decimal en un script en lugar del intérprete?
- 29. Python: siempre use __new__ en lugar de __init__?
- 30. use KML, búsqueda de dirección, instrucciones y 'compartir mapa' en el mismo mapa
sólo se puede hacer de manera eficiente esta en Python con una secuencia mutable (es decir, una lista), no una iterable arbitraria. – jemfinch
Correcto, estoy trabajando con una lista. – johannix