python中的基转换

python中的基转换,python,list-comprehension,base,digits,Python,List Comprehension,Base,Digits,我需要帮助来理解这个问题。请不要发布答案,只发布解决方法 为变量基数赋值10。分配集合{0,1,2,3,4,5,6,7,8,9} 到可变数字。现在用理解力写出一个表达式 以及其值最多为所有值的集合的基数和位数-三位数 数字。您的表达式应该适用于任何基。例如,如果你 相反,将2赋给base,并将{0,1}赋给digits,即 表达式应该是{0,1,2,3,4,5,6,7},因为这是 以2为基数的数字最多有三位数 我尝试了这个表达式,但我无法解决基本2问题 base = 10 digits = {0

我需要帮助来理解这个问题。请不要发布答案,只发布解决方法

为变量基数赋值10。分配集合{0,1,2,3,4,5,6,7,8,9} 到可变数字。现在用理解力写出一个表达式 以及其值最多为所有值的集合的基数和位数-三位数 数字。您的表达式应该适用于任何基。例如,如果你 相反,将2赋给base,并将{0,1}赋给digits,即 表达式应该是{0,1,2,3,4,5,6,7},因为这是 以2为基数的数字最多有三位数

我尝试了这个表达式,但我无法解决基本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)))}
…其值最多为三位数字的集合

重点补充。对于base=10,需要包括值000-099

看起来你差不多成功了。在你的理解中你不需要一个过滤器。考虑一下,对于不同的数字值,对于x,对于y,对于z,对于数字,您将从中得到多少结果。它应该是正确数量的值

…其值最多为三位数字的集合

重点补充。对于base=10,需要包括值000-099


看起来你差不多成功了。在你的理解中你不需要一个过滤器。考虑一下,对于不同的数字值,对于x,对于y,对于z,对于数字,您将从中得到多少结果。它应该是正确数量的值。

您已经得到了答案,只需删除if语句即可。试试这个:

{x*base**2+y*base**1+z*base**0 for x in digits for y in digits for z in digits}

如果使用以10为基数的数字0,1,2,3,4,5,6,7,8,9,则应得到一个从0到999的列表。如果您使用基数2和数字0,1,您应该会得到一个从0到7的列表。

您已经得到了答案,只需删除if语句即可。试试这个:

{x*base**2+y*base**1+z*base**0 for x in digits for y in digits for z in digits}

如果使用以10为基数的数字0,1,2,3,4,5,6,7,8,9,则应得到一个从0到999的列表。如果你使用基数2和数字0,1,你应该得到一个从0到7的列表。

我猜你的家庭作业已经完成了,差不多两年后:

基数中的3位数是表单的一个序列

base^digits
例如,要使3位数的数字以10为基数,可以在python中键入:

10**3
然后,您可以使用“范围”功能将它们全部设置为:

{x for x in range(10**3)}

这适用于任何基础。

我猜你的家庭作业已经完成,差不多两年后:

基数中的3位数是表单的一个序列

base^digits
例如,要使3位数的数字以10为基数,可以在python中键入:

10**3
然后,您可以使用“范围”功能将它们全部设置为:

{x for x in range(10**3)}

这适用于任何基数。

我建议在一组数字中查找最大值。然后我会做rangeint“%s%s%s”%max\u digit,max\u digit\u max\u digit,base+1,但这可能不是你的老师想要的。我需要想出一个理解,返回一个{100-999}的小数集,相同的表达式应该适用于任何基数,例如:2,8 16…我认识到这个问题来自Coursera矩阵/线性代数课程。你真的应该看看那里的课程讨论板,而不是在这里寻求帮助。。。最多3个字符不完全是3个字符。。。只需在理解中去掉if,实际上,您需要一个生成器,它将为您提供001到MMM范围内的所有三位数字,其中M是最大数字。这将通过允许前导0自动包括一位和两位数字。其他提示将查看python-c print helpint的输出……我建议在这组数字中查找最大值。然后我会做rangeint“%s%s%s”%max\u digit,max\u digit\u max\u digit,base+1,但这可能不是你的老师想要的。我需要想出一个理解,返回一个{100-999}的小数集,相同的表达式应该适用于任何基数,例如:2,8 16…我认识到这个问题来自Coursera矩阵/线性代数课程。你真的应该看看那里的课程讨论板,而不是在这里寻求帮助。。。最多3个字符不完全是3个字符。。。只需在理解中去掉if,实际上,您需要一个生成器,它将为您提供001到MMM范围内的所有三位数字,其中M是最大数字。这将通过允许前导0自动包括一位和两位数字。其他提示查看python-c打印帮助的输出。。。