python - 将每个列表列表拆分为给定长度的子列表
问题描述
我想将每个列表列表拆分为给定长度的子列表。我有一个看起来像这样的课程数组:
[['CS105', 'ENG101', 'MATH101', 'GER', 'ENG102', 'CS230', 'MATH120', 'GER', 'CS205', 'FREE', 'GER', 'CS106', 'CS215', 'CS107', 'ENG204', 'GER', 'MATH220', 'CS300', 'CS206', 'CS306', 'GER', 'FREE', 'CS312', 'CS450', 'GER', 'CS321', 'FREE', 'CS325', 'GER', 'CS322', 'MAJOR', 'CS310', 'STAT205', '', 'CS443', 'CS412', 'CS421', 'GER', 'CS444', 'FREE', 'FREE','','',''], ['CS105', 'ENG101', 'MATH101', 'GER', 'ENG102', 'CS230', 'MATH120', 'GER', 'CS205', 'FREE', 'GER', 'CS106', 'CS215', 'CS107', 'ENG204', 'GER', 'MATH220', 'CS300', 'CS206', 'CS306', 'GER', 'FREE', 'CS312', 'CS450', 'GER', 'CS321', 'FREE', 'CS325', 'GER', 'CS322', 'MAJOR', 'CS310', 'STAT205', '', 'CS443', 'CS412', 'CS421', 'GER', 'CS444', 'FREE', 'FREE','','',''],...]
我想将每个列表拆分为子列表,它们看起来像这样:
[[['CS105', 'ENG101', 'MATH101', 'GER'],['ENG102', 'CS230', 'MATH120', 'GER'], ['CS205', 'FREE'], ['GER'], ['CS106', 'CS215', 'CS107','ENG204', 'GER'], ['MATH220', 'CS300', 'CS206', 'CS306'], ['GER', 'FREE'], ['CS312'], ['CS450', 'GER', 'CS321', 'FREE', 'CS325'], ['GER', 'CS322', 'MAJOR', 'CS310'], ['STAT205',''], [''], ['CS443', 'CS412', 'CS421', 'GER',''], ['CS444', 'FREE', 'FREE',''],['','']]...]
我到目前为止所做的如下:
schedule = [4, 4, 2, 1, 5, 4, 2, 1, 5, 4, 2, 1, 5, 4, 2, 1]
for i in courses:
Output = [courses[x - y: x] for x, y in zip(accumulate(schedule), schedule)]
print(Output[0])
但是用 Output[0] 打印的是连续 4 个列表,所以据我所知,它可能需要 4 对。schedule是我希望拆分每个列表的给定长度。我无法理解我可能需要如何循环才能达到我需要的结果。
解决方案
为您准备了一段工作代码:
new_list = []
for c in courses:
_sum = 0
_list = []
for t in schedule:
el = c[_sum:_sum + t]
_sum += t
_list.append(el)
new_list.append(_list)
可能可以更快地完成,但这应该可以完成工作!
如果您有任何问题或无法正常工作,请给我留言!希望我能帮上忙。
推荐阅读
- python - 如何腌制多个熊猫数据框并在单个命令中连接所有数据框
- php - 未显示实时搜索结果
- reactjs - 对于带有输入元素的 React 组件,事件没有被触发
- python - 有什么方法可以为二进制分类特征数据制作散点图?
- javascript - 多个画布上的动画贝塞尔曲线
- pyqt5 - 我想在 Travis-ci 上安装 pyqt5(Python 3.4),但它不起作用
- javascript - 如何用for中的ajax替换html(id)
- c++ - 渴望加载整个模型以估计 Tensorflow Serving 的内存消耗
- regex - 用于查找带有字符和数字的字符串的正则表达式
- excel - 文件夹中的 VB 脚本 RefreshAll(例外)