[英]Checking inputs against list and appending to list of lists
我有一个无序列表A = [1, 4, 16, 22, 9, 2]
和一个有序列表p = [0, 6, 12]
。
我创建了一个列表列表s = [ [] for i in range(n+1)]
。
我想将A
每个元素与p
中的第一个元素进行比较,然后是第二个,依此类推。
如果A's
元素小于p's
元素,我想将其附加到s
的正确列表中。 (所以s
第一个列表将是空的,因为没有小于 0 的值, s
第二个列表应该包含 1,4,2。--最终 0 将进入第一个列表,6 进入第二个列表,12 进入第三个列表。第四个列表将包含大于 12 的元素。
(我需要它是通用的并且适用于不同的列表大小,所以A
可以容纳 20 个元素, p
可以容纳 5 个等等。)
我正在努力将其付诸行动。 请帮忙!
由于p
已排序,您可以为此使用bisect (复杂度为O(log(N))
):
for a in A:
s[bisect.bisect_left(p, a)].append(a)
出去:
[[], [1, 4, 2], [9], [16, 22]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.