我必须使用变量base=10
和digits=set(range(10))
构造一个字典,并编写一个理解,将从0到999的每个整数映射到表示以10为基数的整数的三位数列表。也就是说,值应该是
{0: [0, 0, 0], 1: [0, 0, 1], 2: [0, 0, 2], 3: [0, 0, 3], ...,10: [0, 1, 0], 11: [0, 1, 1], 12: [0, 1, 2], ...,999: [9, 9, 9]}
我被卡住了。在
我试过
^{pr2}$但指数q应该是x * base**2 + y * base**1 + z * base**0
这不是正确的思维方式,有什么想法吗?在
我会使用
itertools
。例如如果您真的要求每个值都是一个列表,您可以在上面添加
(i, list(tup))
。根据documentation,
^{pr2}$product
函数计算笛卡尔积,相当于嵌套的for循环。例如product(range(3), repeat=3)
相当于product(range(3), range(3), range(3))
。product
函数接受*iterables
,因此上面的语法是有效的。您可以使用
divmod
分解每个数字:或者,使用很少使用的
^{pr2}$reduce
函数的构造性解决方案:是你想要的。。。我想
^{pr2}$产生
相关问题 更多 >
编程相关推荐