Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将int拆分为每个可能较小的int_Python_Integer - Fatal编程技术网

如何在python中将int拆分为每个可能较小的int

如何在python中将int拆分为每个可能较小的int,python,integer,Python,Integer,假设我们有一个像12345这样的整数。我们希望在python中将其拆分为可能的数字: {[12345],[1234,5],[123,45],[12345],[12345],[123,4,5],[12,34,5],…,[1,2,3,4,5]}定义获取所有分区(n): def get_all_divisions(n): if n < 10: return [[n]] all_part_div = get_all_divisions(n//10) ldig

假设我们有一个像12345这样的整数。我们希望在python中将其拆分为可能的数字:
{[12345],[1234,5],[123,45],[12345],[12345],[123,4,5],[12,34,5],…,[1,2,3,4,5]}
定义获取所有分区(n):
def get_all_divisions(n):
    if n < 10:
        return [[n]]
    all_part_div = get_all_divisions(n//10)
    ldigit = n % 10
    all_divs = []
    for div in all_part_div:
        div1 = div.copy()
        div1.append(ldigit)
        all_divs.append(div1)
        div2 = div.copy()
        div2[-1] = (div2[-1] * 10) + ldigit
        all_divs.append(div2)
   return all_divs
如果n<10: 返回[[n]] all\u part\u div=获取所有分区(n//10) ldigit=n%10 所有分区=[] 对于所有部分中的div: div1=div.copy() div1.append(ldigit) 所有divs.append(div1) div2=div.copy() div2[-1]=(div2[-1]*10)+ldigit 所有divs.append(div2) 返回所有_div
您可以采用递归方法:

def splitNum(N):
    yield [N]
    D = 10
    while D < N:
        left,right = divmod(N,D)
        for nums in splitNum(left): yield nums+[right]
        D *= 10        

print(*splitNum(12345))

[12345] [1234, 5] [123, 4, 5] [12, 3, 4, 5] [1, 2, 3, 4, 5] [1, 23, 4, 5] [12, 34, 5] [1, 2, 34, 5] [1, 234, 5] [123, 45] [12, 3, 45] [1, 2, 3, 45] [1, 23, 45] [12, 345] [1, 2, 345] [1, 2345]
def splitNum(N):
收益率[N]
D=10
当D
为什么必须使用
div1.copy
?好的,我不必使用它很好的方法-
生成器函数
+
递归
。直到。。