如何在group
或batch
元素列表中基于索引子列表?以下是应考虑的可能情况。希望能帮到你。
第一个示例:elements
的长度==所有indices
元素的总和
indices = [1, 3, 5]
elements = ['A','B','C','D','E','F','G','H','I']
Output:
[['A'], ['B','C','D'],['E','F','G','H','I']]
第二个示例:elements
的长度>所有indices
元素的总和
应考虑indices
的最大元素,然后相应地对elements
列表进行分组
indices = [1, 3, 5]
elements = ['A','B','C','D','E','F','G','H','I', 'J','K','L','M','N']
Output:
[['A'], ['B','C','D'],['E','F','G','H','I'],['J','K','L','M','N']]
第三个示例:elements
的长度>所有indices
元素的总和
应考虑indices
的最大元素,然后相应地对elements
列表进行分组
indices = [1, 3, 5]
elements = ['A','B','C','D','E','F','G','H','I', 'J','K','L']
Output:
[['A'], ['B','C','D'],['E','F','G','H','I'],['J','K','L']]
第四个示例:elements
的长度>所有indices
元素的总和
应考虑indices
的最大元素,然后相应地对elements
列表进行分组
indices = [1, 3, 5]
elements = ['A','B','C','D','E','F','G','H','I', 'J','K','L','M','N','O','P','Q','R','S']
Output:
[['A'], ['B','C','D'],['E','F','G','H','I'],['J','K','L','M','N'], ['O','P','Q','R','S']]
第5个示例:elements
的长度<所有indices
元素的总和
indices = [1, 3, 5]
elements = ['A','B','C']
Output:
[['A'], ['B','C']]
第6个示例:elements
的长度<所有indices
元素的总和
indices = [1, 3, 5]
elements = ['A','B','C','D','E','F']
Output:
[['A'], ['B','C','D'],['E','F']]
如何在Python中实现这一点?
2条答案
按热度按时间t2a7ltrp1#
可以使用
itertools.islice
对elements
进行切片:图纸:
qc6wkl3g2#
不使用
itertools
:输出:
**注意:**这有点粗糙,可以很好地进行优化。