我想创建一个列表解析或一个接受int值的for/while循环(k)然后继续追加中点,直到列表的长度为(k).因此该列表必须来自(0至k-1)和(0到9),k= 10。首先,它将首先附加中点5,即10//2。然后,它将追加2,因为索引0和4之间的中点是2,6和10之间的中点是8。这将继续下去,直到所有的值范围0到9(包括)都存在于列表中。注意,它将是一个整数列表,而不是浮点数。我尝试使用原生python并且不使用任何外部库来实现这一点。下面的代码不起作用,我怎么能这样做呢?下面的测试用例显示了预期输出的输入。
验证码:
k = 10
output = [k // 2] # initial midpoint
while len(output) != k:
formatted_list = [0] + output + [k]
for c,x in enumerate(formatted_list[:-1]):
output.append((formatted_list[c+1] - x) //2)
输入:
k = 10
预期输出:
[5,2,8,1,4,7,9,0,3,6]
输入:
k = 11
预期输出:
[5,2,8,1,4,7,10,0,3,6,9]
1条答案
按热度按时间3htmauhk1#
下面的代码应该适用于您的情况