Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 拆分整数8-->;[1,7],[2,6]_Python 3.x - Fatal编程技术网

Python 3.x 拆分整数8-->;[1,7],[2,6]

Python 3.x 拆分整数8-->;[1,7],[2,6],python-3.x,Python 3.x,我想做一个函数,其中取一个大于3的整数,并展示添加数字的不同方法。例如,6将变成[[1,5],[2,4]],并且不包括[3,3]。3会变成[[1,2]]。8将变成[[1,7],[2,6],[3,5],[4,4] 我迄今为止的努力 def split(k): values = [] for i in range(k//2): values.append([i+1,k-1-i]) print(values) 遇到显示[3,3]和[4,4]的问题。不确定这背

我想做一个函数,其中取一个大于3的整数,并展示添加数字的不同方法。例如,6将变成[[1,5],[2,4]],并且不包括[3,3]。3会变成[[1,2]]。8将变成[[1,7],[2,6],[3,5],[4,4]

我迄今为止的努力

 def split(k):
    values = []
    for i in range(k//2):
        values.append([i+1,k-1-i])
    print(values)

遇到显示[3,3]和[4,4]的问题。不确定这背后的逻辑

您希望使用
math.ceil
来计算奇数,并在浮点除法后进行四舍五入

from math import ceil

def split(k):
    return [[i, k-i] for i in range(1, ceil(k/2))]
因此,在9的情况下,range将生成值1-5,不包括5,
1,2,3,4
,然后从9中减去这些值,形成对

您还可以提供范围
1
的起始值以忽略零

# Output
>>> split(3)
[[1, 2]]
>>> split(8)
[[1, 7], [2, 6], [3, 5]]
>>> split(9)
[[1, 8], [2, 7], [3, 6], [4, 5]]

非常感谢。我不知道天花板的功能。真的很有帮助。不用担心,你也可以只做
range(1,(k+1)//2)
,效果也一样。