我必须生成一个100到999之间的随机数列表,然后编写单独的函数来检查每个数字是否被所有数字2-9整除。
稍后,我想从生成的列表中创建一个字典,用于测试每个数字的可分性。我将使用随机数作为密钥,对值使用是或否。
我知道如何检查一个数字的可分性,但其余的数都有问题,这就是我到目前为止的情况。
import random
#Creates the list of 100 random unique numbers
randNum = random.sample(range(100, 999), 100)
my_list = [randNum]
#prints that list
print(randNum)发布于 2018-11-27 16:12:06
表达式,如
{n: [d for d in range(2,10) if n%d==0] for n in randNum}会给您一个字典,其中键n是randNum中的每个数字,值是范围为2..9的n的除数列表。
发布于 2018-11-27 21:39:11
下面是一个函数的示例,它遍历随机样本并检查所提供范围内每个数字的可分性。此函数返回可以轻松转换为字典的元组列表。
import random
random.seed(8675309)
numbers = random.sample(range(100,999), 5)
divisible_by = [2,3,4,5,6,7,8,9]
def check_divisibility(numbers=numbers, divisible_by=divisible_by):
nums_and_divisors = []
for i in numbers:
divisors = []
for j in divisible_by:
if i % j == 0:
divisors.append(j)
nums_and_divisors.append((i, divisors))
return nums_and_divisors
answer = check_divisibility(numbers=numbers, divisible_by=divisible_by)
# print(answer)
# [(511, [7]), (319, []), (622, [2]), (779, []), (616, [2, 4, 7, 8])]
dictionary = {key: value for key, value in answer}
# print(dictionary)
# {511: [7], 319: [], 622: [2], 779: [], 616: [2, 4, 7, 8]}https://stackoverflow.com/questions/53503607
复制相似问题