0
votes

Comment accéder à une partie spécifique d'un élément de liste, en utilisant une boucle?

J'ai une liste qui est xxx pré>

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]))


2 commentaires

max (a, clé = lambda x: x [1])


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.


5 Réponses :


1
votes

Voici ce que vous pouvez faire (Alexander Lekontsev m'a battu): xxx

Que lambda est que la fonction max évalue en fonction des critères donnés ( Dernier index de chaque élément de la liste A ) et renvoie le tuple avec la probabilité max.


1 commentaires

En théorie, il pourrait y avoir plus d'un article avec probabilité = probabilité maximale.



1
votes

Vous pouvez utiliser la fonction max () code> avec une expression lambda pour obtenir le deuxième élément du tuple: xxx pré>

sortie: p>

(0, 0.6249995)


5 commentaires

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] ou utiliser le déballage de tuple: ID, valeur = max_prob . Vous pouvez également itérer un tuple: pour i dans max_prob . Et vous pouvez le décompresser avec l'opérateur * et transmettre le contenu sur une fonction



0
votes

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))


0 commentaires

0
votes
[(4, 0.3), (5, 0.3)]

1 commentaires

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.



0
votes

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)


1 commentaires

Cela a rendu tellement plus facile! Merci