bonjour
j'ai des données de ce type
tab2 [(1.0, 0), (0.23708331625035484, 1), (0.18343018815345746, 2), (0.16703338552065583, 3)]
comment obtenir le max de tab2 et l'indice correspondant c'est a dire 1 et 0
Version imprimable
bonjour
j'ai des données de ce type
tab2 [(1.0, 0), (0.23708331625035484, 1), (0.18343018815345746, 2), (0.16703338552065583, 3)]
comment obtenir le max de tab2 et l'indice correspondant c'est a dire 1 et 0
Salut.
La function "max()" de base de python a plusieurs arguments. Tout comme la function "sort()" on peut lui passer un critère pour determiner quelle est la valeur max sous la forme d'une fonction. Pour récupérer le couple le plus grand de la liste basé sur la valeur du premier nombre de chaque couple on peut faire quelque chose comme ceci:
Ici on on dit à la function max() de regarder uniquement la première valeur de chaque couple (x) et donc de determiner le max sur cette valeur uniquement.Code:
1
2
3
4 tab2 = [(1.0, 0), (0.23708331625035484, 1), (0.18343018815345746, 2), (0.16703338552065583, 3)] max_tuple = max(tab2, key=lambda x: x[0]) print(max_tuple) >>> (1.0, 0)
Pour récupérer l'indice de ce couple il suffit d'utiliser la method index() des listes:
VoilàCode:
1
2 print(tab2.index(max_tuple)) >>> 0
merci
max_tuple = max(tab2, key=lambda x: x[0]) marche bien
par contre si j'ai
tab2 [(0.0069292694612682615, 1), (0.0036910345729846972, 2), (0.0026851198246516939, 3)]
je recupere bien (0.0069292694612682615, 1)
mais print(tab2.index(max_tuple)) donne 0
je devrai avoir 1
max_tuple[1] renvoie l'indice
c'est ok