根据列表检查输入并附加到列表列表

  • 本文关键字:列表 python list compare
  • 更新时间 :
  • 英文 :


我有一个无序列表,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]]

相关内容

  • 没有找到相关文章