请求生成列表中仅包含k个元素的连续子集
生成指定长度的连续相邻子集
给定列表 L = [1,2,3,4,5,6,7] 和参数 K=2,要生成所有仅包含K个元素的连续相邻子集,可以用Python的列表推导式快速实现:
L = [1,2,3,4,5,6,7] K = 2 result = [L[i:i+K] for i in range(len(L) - K + 1)] print(result)
代码说明
range(len(L) - K + 1)确定了循环的起始索引范围:从0到len(L)-K(包含),确保最后一次切片能刚好取到K个元素,不会出现长度不足的情况。- 每个切片
L[i:i+K]都会得到一个长度为K的连续相邻元素子集,最终结果完全符合预期:[[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]。
边界情况处理
如果K的数值大于列表长度(比如K=8,而列表只有7个元素),len(L)-K+1 会得到负数或0,此时range()返回空序列,最终结果为空列表,避免生成不符合要求的子集。
内容的提问来源于stack exchange,提问作者ABHAY PRATAP
相关产品推荐
相关产品推荐

