在列表中生成随机项目
问题描述:
如何调整此功能,如果它运行多次,它不会返回以前的方向?例如,如果它生成N
,则下一次不会返回N
。在列表中生成随机项目
import random
def random_direct():
directions=['N','S','E','W']
return random.choice(directions)
谢谢你的时间!
此问题要求返回随机项目不打印它。
答
如果您可以通过以前的方向,如在另一个答案,这是最好的。如果你不能,你可以做一些两轮牛车(我做不推荐的):
def random_direct(_prev = [None]):
directions = [direction for direction in ('N', 'S', 'E', 'W')
if direction != _prev[0]]
res = random.choice(directions)
_prev[0] = res
return res
调用不带任何参数的功能,如random_direct()
。
可能的重复http://stackoverflow.com/questions/29805042/python-avoid-previous-value-from-random-selection-from-list –
可能的重复[Python |避免从列表中随机选择以前的值](http://stackoverflow.com/questions/29805042/python-avoid-previous-value-from-random-selection-from-list) –