En comparant les valeurs de la liste par l'indice en Python
J'ai besoin de voir si 2 éléments à partir d'une liste s'affiche dans une autre liste, et s'ils le font, comparer les articles en fonction de leur position dans l'autre liste. Exemple en pseudo code:
j=0
for x in mylist #loop through the list
i=0
for y in mylist #loop through the list again to compare items
if index of mylist[j] > index of mylist[i] in list1 and list2:
score[i][j] = 1 #writes the score to a 2d array(numpy) called score
i=i+1
else:
score[i][j]=0
i=i+1
j=j+1
De L'Échantillon Description:
Names = [John, James, Barry, Greg, Jenny]
Results1 = [James, Barry, Jenny, Greg, John]
Results2 = [Barry, Jenny, Greg, James, John]
loop through Names for i
loop through Names for j
if (index value for john) > (index value for james) in results1 and
(index value for john) > (index value for james) results2:
score[i][j] = 1
Quelqu'un peut-il svp me pointer dans la bonne direction? J'ai été à la recherche à de nombreuses liste, de tableau et de .index des tutoriels, mais rien ne semble répondre à ma question
- Ce sera bien plus facile à comprendre si vous fournissez une description narrative des exactement ce que vous voulez faire, comme "pour tout i,j de moins que la longueur de la liste 1, je veux ..."
- fait, j'espère que c'est assez clair. Je comprends que c'est difficile à expliquer ce que je veux
- Non, j'ai besoin de faire une boucle par deux fois pour comparer chaque paire de noms, c'est à dire
names[0][1]=[john, james]
- votre récit serait plus facile à comprendre avec des noms cohérents. Est
name list
le même queNames
? La liste estindex value
référence? - toutes mes excuses, j'ai corrigé ça. valeur de l'indice est la valeur de l'indice pour que personne dans les deux exploitation1 et results2. Je suis en comparant leurs valeurs de l'indice de la probabilité des fins de
InformationsquelleAutor adohertyd | 2012-07-10
Vous devez vous connecter pour publier un commentaire.
Convertir votre
list2
à un dictionnaire qui code pour la position donnée d'un élément:Maintenant, vous pouvez tester pour quelque chose dans la liste à l'aide de
x in dic2 and y in dic2
et l'utilisationdic2[x]
pour obtenir de l'indice dans la liste.Edit: Il va à l'encontre de mes meilleurs instincts, mais voici le code complet. La première partie est à l'aide de ce que j'ai montré ci-dessus, en tournant une simple liste à une recherche l'index. Vient ensuite la norme, si peu intuitive façon d'initialisation d'un 2D liste. Il est suivi par vos boucles, à l'aide de la jamais pratique
enumerate
fonction pour assigner un index pour chaque nom dans la liste.names
liste est une liste d'athlètes.Results1
etResults2
sont les positions respectives de chaque athlète dans les 2 courses. Ce que je veux faire est de vérifier si par exemplejohn
battrejames
dans les deux courses et répétez cette comparaison pour chaque paire de noms. Si oui, je veux écrire le score de 1 àscore
; c'est pour les calculs de probabilité plus tard.SI je comprends ce que vous essayez de faire, ici, c'est une approche:
Imprime:
score
est une matrice 2d (créé à l'aide de numpy). Il semble que je n'ai pas le choix mais pour créer un dictionnaire à partir d'une liste et ensuite de les convertir en un tableau 2d. Comment cela affecterait-il le programme de calcul, surtout si lenames
liste est grande?a[i][j]
de la même manière que je suis en utilisant le n-uplet. Les limites du tableau doivent être à la portée cependant. (Python tableaux de ne pas autovivify)