我正在尝试在Python中创建一个小程序,从列表中选择一个随机字符串并打印字符串.但通常程序会选择相同的字符串两次.
有没有办法确保每个字符串只输出一次?
我的代码到目前为止:
from random import choice food = ['apple', 'banana', 'strawberry', 'blueberry', 'orange'] print 'You should eat today :' + choice(food) print 'You should eat tomorrow :' + choice(food)
Steinar Lima.. 5
如果您之后不关心列表的排序,您可以先将列表重新排序,然后迭代它.
import random food = ['apple', 'banana', 'strawberry', 'blueberry', 'orange'] random.shuffle(food) for f in food: print f
如果你不需要立即使用所有这些,你应该只在需要时弹出一个项目(这将耗尽列表).
import random food = ['apple', 'banana', 'strawberry', 'blueberry', 'orange'] random.shuffle(food) try: print food.pop() except IndexError: print "No more food left!" # .... # some more code # I'm hungry! try: print food.pop() except IndexError: print "No more food left!" # etc.
尝试...除了需要处理你想要从空列表中获取一些食物的情况.
如果您之后不关心列表的排序,您可以先将列表重新排序,然后迭代它.
import random food = ['apple', 'banana', 'strawberry', 'blueberry', 'orange'] random.shuffle(food) for f in food: print f
如果你不需要立即使用所有这些,你应该只在需要时弹出一个项目(这将耗尽列表).
import random food = ['apple', 'banana', 'strawberry', 'blueberry', 'orange'] random.shuffle(food) try: print food.pop() except IndexError: print "No more food left!" # .... # some more code # I'm hungry! try: print food.pop() except IndexError: print "No more food left!" # etc.
尝试...除了需要处理你想要从空列表中获取一些食物的情况.