[英]Generating random item in list
How do I adjust this function so if it is run multiple times it does not return the previous direction? 如何调整此功能,以便如果多次运行该功能不会返回先前的方向? For example, if it generated
N
, the next time it would not return N
. 例如,如果它生成
N
,则下次它将不返回N
import random
def random_direct():
directions=['N','S','E','W']
return random.choice(directions)
Thanks for your time! 谢谢你的时间!
This question asks to return the random item not print it. 这个问题要求返回随机项目而不打印它。
import random
def random_direct(prev_direction=None):
directions = [direction for direction in ('N','S','E','W')
if direction != prev_direction]
return random.choice(directions)
If you can pass previous direction as in another answer, it's the best. 如果您可以像其他答案一样通过先前的指示,那是最好的。 If you cannot, you can do some hackery (I do not recommend it):
如果不能,则可以进行一些黑客攻击(我不推荐这样做):
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
Call the function without any parameters, like random_direct()
. 调用没有任何参数的函数,例如
random_direct()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.