【发布时间】:2021-08-09 16:22:03
【问题描述】:
根据另一个列表获取列表中所有 3 项项目组合的最有效方法是什么? 假设我有这三个列表:
sec_floors= [1, 2, 3],
assigned_floor= [1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
sector_number= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
我需要根据来自assigned_floor 的对应数字从扇区sector_number 列表中获取所有3 个项目组合。
在 sec_floors 中,我列出了 assignment_floor 中的所有唯一号码。
所以第一个组合是:
(0,2,5)(0,2,6)(0,2,7)...
然后(0,3,5)、(0,3,6) 等
它基于从sector_number到assingned_floor的对应数字的索引。
编辑 当我输入从最低到最高的楼层时,@Park Answer 可以正常工作,但是例如当我从列表中的较高位置开始时它会失败:
sec_floors = [16,17,18,7,6]
assigned_floor = [16, 16, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 7, 7, 7, 7 6, 6, 6]
sector_number =[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
如果数据未排序,似乎 bisect 不起作用,但是是否可以以任何方式保持未排序?
【问题讨论】:
-
请澄清您的描述和示例。尚不清楚
sec_floors与assigned_floor的关系以及您如何得出示例组合。 -
@Woodford 更新
标签: python list combinations