2015-10-08 1 views
-1

Ceci est pour un projet python sur lequel je travaille. J'apprends toujours la langue, mais j'ai frappé une souche ici. Toute aide est grandement appréciée. Voici mon pseudo code:Quel type de boucle utiliser avec ce pseudo code

variable1 = (returned function() value) 
listItem = [] 

<start loop> 
If value of variable1 IS NOT in listItem: 
listItem.append(assign value from variable1) 

else: 
go back to start of loop 

print listItem(all items) 

Je suis confus s'il est préférable d'utiliser une instruction for, while ou if ici. J'ai essayé avec tous les trois, mais j'ai plusieurs erreurs. Je ne vois pas quelque chose ...

+0

Quel type d'erreurs avez-vous eu? – Andy

+1

Votre boucle semble incomplète. Il y a autre chose que vous devez faire dans la boucle. Sinon, tout ce dont vous avez besoin est une instruction if. – sureshvv

Répondre

0

Vous voulez convertir une liste à une liste unique:

>>> results = function() 
>>> unique = [] 
>>> for result in results: 
...  if result not in unique: 
...   unique.append(result) 

set est bon pour l'unicité, et vous pouvez le convertir en un list facilement:

>>> unique = list(set(results)) 

Cependant, cela ne conserve pas l'ordre des résultats d'origine.

Python ne dispose pas d'un ensemble ordonné, mais il a un dictionnaire ordonné, que vous pouvez abuser en utilisant son clés comme un ensemble ordonné:

>>> from collections import OrderedDict 
>>> ordered_unique = OrderedDict((key, key) for key in results).keys() 
0

Actuellement tout ce que vous avez besoin est l'instruction if, vous n'avez pas besoin de la boucle ou de l'instruction else. Si je vous comprends bien, vous voulez rechercher listItem pour une variable (variable1), et si elle ne contient pas cette variable, vous voulez l'ajouter à la liste. Cependant, il semble que votre question manque quelque chose. Peut-être que vous essayez de rechercher listItem pour plusieurs variables?

0

Merci pour le point de vue tout le monde. Je l'ai compris. J'avais besoin d'utiliser une boucle while pour cette tâche. Voici ma solution.

variable0 = <null value> 
listItem = [empty list] 

variable1 = 0 (required for while loop expression) 
while variable1 is less than 0: 
    variable0 = (returned random function() value) 
    if variable0 is not in listItem: 
      Append variable0 value to listItem 
increase value of variable1 by 1 

print contents of listItem 

Merci encore pour toute votre aide.