Quiero integrar elementos de mi lista numbers
:
['1', '2', '3', '4', '5']
en mi lista de listas letters
:
[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h', 'i', 'j'], ['k', 'l', 'm', 'n', 'o'], ['p', 'q', 'r', 's', 't'], ['u', 'v', 'w', 'x', 'y']]
Para generar una combinación de los dos, donde el primer elemento de numbers
se agrega al frente de la primera lista letters
como se muestra:
[['1', 'a', 'b', 'c', 'd', 'e'], ['2', 'f', 'g', 'h', 'i', 'j'], ['3', 'k', 'l', 'm', 'n', 'o'], ['4', 'p', 'q', 'r', 's', 't'], ['5', 'u', 'v', 'w', 'x', 'y']]
Intenté hacer esto usando
newlist = []
for i in range(len(numbers)):
newlist.append ([numbers[i], letters[i]])
Sin embargo, esto genera un resultado como este:
[['1', ['a', 'b', 'c', 'd', 'e']], ['2', ['f', 'g', 'h', 'i', 'j']], ['3', ['k', 'l', 'm', 'n', 'o']], ['4', ['p', 'q', 'r', 's', 't']], ['5', ['u', 'v', 'w', 'x', 'y']]]
Simplemente combinaría las listas en lugar de convertirlas en una nueva lista. Creo que esta es la forma más pitónica, y resulta que también es la más eficiente:
newlist = []
for i in range(len(numbers)):
newlist.append ([numbers[i]] + letters[i])
435 ns ± 5.89 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Comparando otras respuestas:
newlist = []
for i in range(len(numbers)):
newlist.append([numbers[i], *letters[i]])
1.72 µs ± 301 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
y
combo = [[n, *l] for n, l in zip(numbers, letters)]
1.04 µs ± 36.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
todos estos regresan:
[['1', 'a', 'b', 'c', 'd', 'e'],
['2', 'f', 'g', 'h', 'i', 'j'],
['3', 'k', 'l', 'm', 'n', 'o'],
['4', 'p', 'q', 'r', 's', 't'],
['5', 'u', 'v', 'w', 'x', 'y']]
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