我需要帮助来理解这个问题。请不要发布答案,只发布解决方法。
赋值
10
给变量base
。将集合分配{0,1,2,3,4,5,6,7,8,9}
给变量digits
。现在使用推导式编写一个表达式base
,digits
其值是所有最多三位数字的集合。您的表达式应该适用于任何基础。例如,如果您改为分配2
给基数并分配{0,1}
给数字,则表达式的值应该是{0,1,2,3,4,5,6,7}
,因为这是以 2 为基数,最多具有三位数字的数字集。
我尝试了这个表达式,但我无法解决 base 2 问题。
base = 10
digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
{(x*(base**2))+(y*(base**1))+(z*(base**0)) for x in digits for y in digits for z in digits if (x*(base**2))+(y*(base**1))+(z*(base**0))>((y*(base**1))+(z*(base**0)))}