Le i-ème élément de notre liste d'indices indique l'index de la i-ème liste 1D dans la liste 2D que nous voulons connaître.
Si notre liste 2D et notre liste d'indices ressemble à ceci: p>
res = []
for i in range(len(list_ix)):
res.append(a[i][list_ix[i]])
Le résultat souhaité est [7,9].
Actuellement, je le fais en utilisant une boucle comme ci-dessous:
a = [[1,7,3],[9,0,8]] list_ix = [1, 0]
3 Réponses :
Utilisez enumerate qui permet vous deux pour obtenir une valeur dans une liste et suivre votre position actuelle.
a = [[1,7,3],[9,0,8]]
list_ix = [1, 0]
res = []
for i, outer_list_index in enumerate(list_ix):
res.append(a[i][outer_list_index])
print(res)
Vous pouvez utiliser la fonction zip () :
[7, 9]
Impressions:
a = [[1,7,3],[9,0,8]] list_ix = [1, 0] out = [l[i] for i, l in zip(list_ix, a)] print(out)
Je pense que cela pourrait être fait de cette façon:
res = [a[idx][element] for idx, element in enumerate(list_ix)]
En savoir plus sur enumerate ici: https://docs.python.org/3/library/functions.html# énumérer