如何在python中生成但排除某个数字整数中的某个数字



我只是想知道如何生成某个数字整数,但也排除某个数字出现在该数字中。

例如,如果我排除 3 位数字上的数字 0,无论我生成多少次都不会出现任何 0。结果的例子是591、292、182、111、181、738等。

如果要在函数中,例如

def randomIntWithNDigits(n):

,这将是非常有帮助的。

这是一个解决方案,使用字符串中随机选择的字符,其中包含除您不需要的数字之外的每个数字。

import random
def randomIntWithNDigits(n):
    numbers = '12456789'
    result = ''
    for i in range(0,n):
        result+= random.choice(numbers)
    return result

这很容易。例如,排除 0 时:

def randomIntWithNDigits(n):
    allowedDigits = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    randInts = []
    for i in range(n):
        randInts.append(random.sample(allowedDigits, 1))
    return int(''.join(map(str, randInts)))

当需要排除其他一些数字时,您应该更改允许的数字。

import random
def generaterandom(n):
    while True:
        rand = random.randrange(0,n)
        if not '3' in rand.__str__():
            return rand;
print generaterandom(10)

最新更新