Digamos que tengo una lista de frutas y quiero insertar los elementos de esa lista en otra lista. Usando la comprensión de lista me gustaría tener un código que es similar al siguiente:
fruit = ["apple", "orange", "banana", "peach"]
my_list = []
[my_list.insert(0, i) for i in fruit]
print(my_list)
Esto devuelve:
['peach', 'banana', 'orange', 'apple']
Sin embargo, quiero que los elementos dispuestos en el mismo orden que la lista original. Mi idea fue simplemente invirtiendo de esta manera:
[my_list.insert(-1, i) for i in fruit]
Pero que los rendimientos por cualquier razón:
['orange', 'banana', 'peach', 'apple']
¿Puede alguien explicar por qué utilizando el índice de [-1] resultados en este orden impar? ¿Cómo podría lograr el orden original?
EDITAR:
Se me olvidó añadir que estoy buscando un método que inserta los elementos de la lista al principio de la lista, por lo que añadir los elementos de
more_fruit = ["pear", "pineapple", "coconut"]
en
my_list = ["apple", "orange", "banana", "peach"]
debe dar lugar a
my_list = ["pear", "pineapple", "coconut", "apple", "orange", "banana", "peach"]
Generalmente no se recomienda el uso de "efectos secundarios" dentro de una lista por comprensión ni usarlos en lugar de un bucle. Puede insertar una lista a otra lista mediante subíndices simples sin embargo:
more_fruit = ["pear", "pineapple", "coconut"]
my_list = ["apple", "orange", "banana", "peach"]
my_list[0:0] = more_fruit
salida:
print(my_list)
# ['pear', 'pineapple', 'coconut', 'apple', 'orange', 'banana', 'peach']
Nota: un subíndice es una referencia a algunos elementos en la lista, ya sea un solo elemento o una serie de elementos. En este caso, estamos reemplazando una gama de elementos que contienen elementos cero a partir de la posición 0.