python - 如何在不使用内部元素的情况下将列表拆分为 x 个列表?
问题描述
处理一项作业,其中一个部分要求我将列表拆分为“x”个列表块,但我不一定想使用列表中的元素来这样做,因为我已经看到了很多这样做的例子. 例如,给定列表[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
,我想将此列表分成 3 个偶数部分([[1,2,3,4,5],[6,7,8,9,10],[11,12,14,15]])
。
我在这里看到的大多数示例都倾向于将整个列表除以“x”,而不是将其分成“x”组,最终给我一个类似的列表[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]
。
编辑:
我已经想出了如何在我正在寻找的这个问题的第一部分中获得所需的输出,但是在进一步查看我的作业后,我意识到需要制作的列表必须以增量lst
而不是放入一个值,该值将在该范围内生成一个列表。例如,如果我想打印一个分组列表,比如[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
我不想设置lst
为lst = list(range(1,lst+1))
,然后当我为我的函数分配值时,我希望能够用 5 代替 15 来获得同样的结果。
def test(num, lst, start = 1):
lst = list(range(start,lst+1))
avg = len(lst) / float(num)
out = []
last = 0.0
while last < len(lst):
out.append(lst[int(last):int(last + avg)])
last += avg
return out
print (test(3,15))
解决方案
我在这里看到的大多数示例都倾向于将整个列表除以“x”,而不是将其分成“x”组,最终给我一个类似 [[1,2,3],[4,5 ,6],[7,8,9],[10,11,12],[13,14,15]]。
在您的示例中,分为 3 个块的 15 个元素的列表构成 5 个组。太糟糕了,你不想要五个组而不是三个,你已经完成了!
如果只有一种方法可以将 15 个元素与不同大小的块分开,这样你就有 3 个组 =)
暗示:
3 x 5 = 15
5 x 3 = 15
tl;dr:如果您认为将列表分成大小为“x”的块与创建“y”组不同,那么您应该花一点时间重新考虑。
推荐阅读
- android - 我是否必须始终从片段/活动中调用视图模型中的方法?
- php - 获得经纬度
- javascript - 将数组索引传递给 onClick 函数 ReactJS
- python-3.x - 解释输出是怎么来的
- wordpress - 如何为特定的 url 使用另一个域?
- html - 源代码未显示在 iPhone 的 Safari 浏览器上
- php - 使用数字而不是光标进行分页
- javascript - 如何使 Material-UI Dialog 在 React 中工作
- sql - 查询需要很长时间才能执行
- python - DRF(初学者问题):如何在 setting.py 中更改全局日期格式