Me gustaría hacer una lista de listas con mapa y lambda en Python. Tengo esta construcción, pero agregar no funciona.
my_list = [[0, 1], [0, 1]]
my_list = list(map(lambda x: x.append(1), my_list))
Espero que el resultado sea algo como esto:
[[0, 1, 1], [0, 1, 1]]
Intenté esto:
list(map(lambda x: [x[0], x[1], 1], my_list))
Esto funciona (el resultado es [(0, 1, 1), (0, 1, 1)]
), pero en realidad quiero usar algo como agregar, porque depende de la dimensión de la lista.
Si tengo una lista de entrada como
my_list = [[0, 1], 0]
no funciona.
Usando map y lambda puede hacer:
my_list = [[0, 1], [0, 1]]
my_list = list(map(lambda x: x + [1], my_list))
print(my_list)
Producción:
[[0, 1, 1], [0, 1, 1]]
Una Comprensión también funciona:
my_list = [[0, 1], [0, 1]]
my_list = [x + [1] for x in my_list]
print(my_list)
Producción:
[[0, 1, 1], [0, 1, 1]]
Editar: su segunda entrada de muestra implica el potencial de elementos que no están en la lista.
Aquí hay una forma de manejar ese caso:
my_list = [[0, 1], 0]
my_list = [(x if isinstance(x, list) else [x]) + [1] for x in my_list]
print(my_list)
Producción:
[[0, 1, 1], [0, 1]]
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras