python - 选择列表的前 20%,然后选择列表的下 20%
问题描述
我有一个这样的列表,其中包含大约 141 个条目:
training = [40.0,49.0,77.0,...... 3122.0]
我的目标是选择列表的前 20%。我是这样做的:
testfile_first20 = training[0:int(len(set(training))*0.2)]
testfile_second20 = training[int(len(set(training))*0.2):int(len(set(training))*0.4)]
testfile_third20 = training[int(len(set(training))*0.4):int(len(set(training))*0.6)]
testfile_fourth20 = training[int(len(set(training))*0.6):int(len(set(training))*0.8)]
testfile_fifth20 = training[int(len(set(training))*0.8):]
有没有办法在循环中自动执行此操作?这是我选择 Kfold 的方式。
谢谢你。
解决方案
这是一个简单的列表理解
lst = list('abcdefghijkl')
l = len(lst)
[lst[i:i+l//5] for i in range(0, l, l//5)]
# [['a', 'b'],
# ['c', 'd'],
# ['e', 'f'],
# ['g', 'h'],
# ['i', 'j'],
# ['k', 'l']]
编辑:实际上,现在我查看我的答案,它不是真正的 20% 表示,因为它返回 6 个子列表而不是 5 个。当列表不能平均分为 5 个部分时会发生什么?在得到进一步澄清之前,我将暂时搁置这一点。
推荐阅读
- selenium - Selenium 等效于 Puppeteer 中的 networkidle2/networkIdle0
- html - 为什么这种变换旋转在 Edge 中不起作用?
- plot - Julia Plot Log 色标
- chart.js - Chart.js 散点图根据值填充图表的部分
- java - PKCS#12 KeyStore 格式的 Bouncy Castle FIPS 模式
- coldfusion - 插入带有结果集数据的临时表
- javascript - 我不确定如何在我的 java 项目中执行 html 转义以防止 XSS
- php - WooCommerce:检查订单是否免费送货
- node.js - 预加载在生产中无法正常工作/编译(Electron-vue SimulatedGREG)
- sqlite - 与 Flutter/Sqlite 的一对多关系