gpt4 book ai didi

python - 在 Python 中遍历分区

转载 作者:太空狗 更新时间:2023-10-30 01:22:23 26 4
gpt4 key购买 nike

我想知道(在 Python 中)迭代给定大小列表的分区的最佳方法是什么。

例如,我们有列表 [1,2,3,4,5] 并且我们想要 k=3 分区。这样做的一个糟糕的方法是写:

lst = [1,2,3,4,5]
for i in range(1,len(lst)):
for j in range(i+1, len(lst)):
print lst[:i], lst[i:j], lst[j:]

这给出了

[1], [2], [3,4,5]
[1], [2,3], [4,5]
...
[1,2,3], [4], [5]

但如果我以后想遍历 k=4 分区,那么我将不得不添加一层 for 循环嵌套,这在运行时无法完成。理想情况下,我想写这样的东西:

for part in partitions([1,2,3,4,5], k):
print part

有谁知道最好的方法吗?

最佳答案

如果没有 pairwise,我会使用与您相同的想法:

from itertools import combinations

def partitions(items, k):

def split(indices):
i=0
for j in indices:
yield items[i:j]
i = j
yield items[i:]

for indices in combinations(range(1, len(items)), k-1):
yield list(split(indices))

关于python - 在 Python 中遍历分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com