如何确保从列表随机生成的两个元素number1与number2不出现重复
解决随机抽取元素重复的方案
推荐直接使用random.sample()方法实现需求,该方法会从指定序列中无放回抽取指定数量的不重复元素,不需要额外判断逻辑:
import random car_list = [['Toyota', 8], ['Merc', 8], ['BMW', 8], ['Porshe', 8], ['RR', 8]] # 直接抽取2个不重复元素,分别赋值给两个变量 number1, number2 = random.sample(car_list, 2) print(number1) print(number2)
如果你的场景需要分步骤单独抽取两个变量,也可以给第二个变量加重复校验逻辑:
import random car_list = [['Toyota', 8], ['Merc', 8], ['BMW', 8], ['Porshe', 8], ['RR', 8]] number1 = random.choice(car_list) # 重复抽取number2直到和number1不相等 while True: number2 = random.choice(car_list) if number2 != number1: break print(number1) print(number2)
两种方案中优先选random.sample,代码更简洁、执行效率更稳定。
内容的提问来源于stack exchange,提问作者user16472631
相关产品推荐
相关产品推荐

