【发布时间】:2018-03-19 05:27:51
【问题描述】:
我有一个列表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]
我需要
[0, 0, 3, 4, 5, 0, 0, 0]
这里的第一个非零元素位于第三位,以匹配b 等于或大于3 的位置,同样,作为与b 比较的结果,最后一个非零元素位于第五位.
最终输出总是len(b);如果开头的零太多而无法容纳所有a,则删除a 中的元素。
【问题讨论】:
-
那么你的输入列表排序了吗?
-
@MartijnPieters 是的
-
如果
a[pos] == b[pos]会发生什么,所以b中有3.0? -
@MartijnPieters 然后 'pos' 将是第一个非零元素的位置
-
如果
b在a的“范围”之外有超过3 个元素会怎样?说b = [0.1, 2.1, 3.0, 3.5, 4.1, 5.8, 6.6, 7]?还是你基本上只将a[0]与b中的值对齐,然后匹配长度?
标签: python arrays list padding