Estoy bastante seguro de que debería haber una forma más pitonica de hacerlo, pero no puedo pensar en una: ¿cómo puedo fusionar una lista bidimensional en una lista unidimensional? Algo así como zip/map pero con más de dos iteradores.Fusionando/agregando listas en Python
Ejemplo - He la siguiente lista: Hasta ahora lo que he llegado con
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Quiero tener
result = [12, 15, 18] # [1+4+7, 2+5+8, 3+6+9]
es:
def add_list(array):
number_items = len(array[0])
result = [0] * number_items
for index in range(number_items):
for line in array:
result[index] += line[index]
return result
Pero eso no se ve muy elegante/Pythonic para mí. Además de no verificar si todas las "líneas" en la matriz 2D son de la misma longitud, pueden agregarse entre sí, etc. ¿Cuál sería una mejor manera de hacerlo?
Hm, aunque interesante, no es realmente una respuesta a esta pregunta (y, por lo tanto, puede atraer votos a la baja). Podría, por ejemplo, hacer la pregunta "¿Cómo puedo intercalar varias listas?" y responde tú mismo. Tal vez use un ejemplo que use más de dos listas; de lo contrario, alguien sugerirá '", ". Join (a)'. –
Tim acordó. Es un apropros de este 'q & a' apuntado por un hilo que trata listas de entrelazado, ¡pero marcado como un duplicado de esta pregunta! Usé ',' en el ejemplo, solo por simplicidad, mi código requería listas reales de clases definidas por el usuario para ser intercaladas, pero eso sería difícil de excusar en abstracto. – F1Rumors