J'ai une liste qui est 0,1,2,3 étant des sujets basés sur la modélisation LDA et 0.6249995, 0.12500015, 0.12500016 et 0.12500015 étant les probabilités. P> J'ai besoin d'accéder à l'élément qui a la probabilité maximale, c'est-à-dire (0, 0,6249995). P> Comment écrivez-moi une boucle pour faire cela? P> J'ai essayé quelque chose Comme ceci: P> for i in range(len(a[0]) - 1):
for j in range(len(a)):
print(max(a[j][1]))
5 Réponses :
Voici ce que vous pouvez faire (Alexander Lekontsev m'a battu): Que lambda code> est que la fonction max évalue en fonction des critères donnés ( Dernier index de chaque élément de la liste A code>) et renvoie le tuple avec la probabilité max. p> p>
En théorie, il pourrait y avoir plus d'un article avec probabilité = probabilité maximale.
Vous pouvez utiliser la fonction sortie: p> max () code> avec une expression lambda pour obtenir le deuxième élément du tuple: (0, 0.6249995)
En théorie, il pourrait y avoir plus d'un article avec probabilité = probabilité maximale.
Merci @jignatius, tuple est idéalement ce que je devrais travailler avec. Essayeusement pensé qu'il s'agisse de la liste :)
@Mihirbelgaonkar C'est une liste - une liste de tuples.
J'ai compris! juste un doute de plus. Comment faire la sortie que je reçois de max_prob iTrable? Une idée? Tia.
@Mihirbelgaonkar Un tuple est démarré. Vous pouvez accéder aux éléments directement comme max_prob [1] code> ou utiliser le déballage de tuple: ID, valeur = max_prob code>. Vous pouvez également itérer un tuple: pour i dans max_prob code>. Et vous pouvez le décompresser avec l'opérateur * code> et transmettre le contenu sur une fonction
Essayez ceci, cela fonctionne.
a = [(0, 0.6249995), (1, 0.12500015), (2, 0.12500016), (3, 0.12500015)]
new = list()
for i in a:
new.append(i[1])
print(max(new))
[(4, 0.3), (5, 0.3)]
Merci d'avoir souligné cela. Oui idéalement, j'aurais également besoin d'accéder à plusieurs éléments si les probabilités maximales sont plus d'une.
ci-dessous est un moyen facile à comprendre pour le faire;
import sys
maxList = []
maxVal = sys.float_info.min
for t in a:
if t[1] >= maxVal:
maxVal = t[1]
maxList.append(t)
print(maxList)
Cela a rendu tellement plus facile! Merci
max (a, clé = lambda x: x [1]) code>Vous pouvez ajouter une variable avant la boucle pour stocker la valeur max et que vous traversez la boucle si un [J] [1] [1]> max_value Set Max_Value = A [J] [1] Donc, lorsque vous quittez la boucle de votre réponse. la plus haute valeur.