我需要在Python中生成随机数。结果应该是这样的形式:
(9, 15)
(6, 11)
(2, 2)
(17, 15)
(18, 3)
行中的第一个数字 - 1..20 范围内的非重复随机数(3 和 5 除外),第二个数字 - 1...15 范围内的任何随机数
我能够生成带有排除项的随机数,但我不知道如何从行中第一个数字的结果中排除重复项:
for i in range(0, 5):
from random import choice
mm = choice([i for i in range(1, 21) if i not in [3, 5]])
nn = random.randint(1, 15)
result = mm, nn
print(result)
所以我得到这样的信息:
(9, 15)
(17, 11)
(2, 2)
(17, 15)
(18, 3)
在给出的示例中,数字 17 不应出现多次。
如有任何帮助,我们将不胜感激。谢谢!
import random
used_numbers = set()
for _ in range(5):
available_numbers = [i for i in range(1, 21) if i not in [3, 5] and i not in used_numbers]
if not available_numbers:
# Reset used_numbers set if all eligible numbers have been used
used_numbers = set()
available_numbers = [i for i in range(1, 21) if i not in [3, 5] and i not in used_numbers]
mm = random.choice(available_numbers)
used_numbers.add(mm)
nn = random.randint(1, 15)
result = (mm, nn)
print(result)