与此伪代码一起使用的循环类型

时间:2015-10-08 17:41:25

标签: python loops

这是我正在研究的python项目。我还在学习这门语言,但我在这里遇到了一个难题。任何帮助是极大的赞赏。这是我的伪代码:

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)

我很困惑,如果最好在这里使用for,while或if语句。我试过这三个,但我得到了各种错误。我没有看到什么......

3 个答案:

答案 0 :(得分:0)

您想将列表转换为唯一列表:

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

set有助于实现唯一性,您可以轻松将其转换为list

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

然而,这不会保持原始结果的顺序。

Python没有有序集,但它确实有一个有序字典,您可以将其作为有序集使用它来滥用:

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

答案 1 :(得分:0)

目前您只需要if语句,不需要循环或else语句。 如果我理解正确,您希望在listItem中搜索ONE变量(variable1),如果它不包含该变量,则需要将其附加到列表中。但是,似乎你的问题遗漏了一些东西。也许您正在尝试在listItem中搜索多个变量?

答案 2 :(得分:0)

感谢大家的见解。我已经弄清楚了。我需要使用while循环来完成这项任务。这是我的解决方案。

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

再次感谢您的帮助。