我有一个包含几个元素的列表a
。我有另一个列表b
,包含更多元素。我需要扩展a
以匹配b
的大小,使用零来填充。在将要出现的新列表中,原始的a
位于由b
决定的位置,如下面的示例所述。
我的情况的一个小例子:
a = [3, 4, 5]
b = [1.2, 2.5, 3.7, 4.3, 5.1, 6.3, 7.3, 8.9]
我需要
^{pr2}$第一个非零元素在这里处于第三个位置,以匹配b
变为等于或大于3,类似地,作为与b
比较的结果,最后一个非零元素位于第五个位置。在
最后的输出总是len(b)
;如果开头的零太多而无法容纳所有的a
,那么来自{
使用二分法查找} module
b
中大于或等于a[0]
的第一个位置,其中^{对分可以在O(logN)时间内找到点。在
另一种方法是使用生成器函数;循环},直到耗尽并返回零:
^{pr2}$b
并生成0
s,直到找到与a[0]
相等或更大的值,然后生成{演示:
对于边缘情况;
b
太短,从a
中删除值:匹配的
b
的第一个值:试试这个
相关问题 更多 >
编程相关推荐