Python如何将比较结果转为列表并按每6个元素分组输出
实现方案
原有代码直接逐行打印比较结果,没有在内存中存储结果值,后续分片操作没有可处理的数据源,按以下两步调整即可:
- 第一步:不要直接打印判断结果,先把所有比较得到的0、1收集为独立的结果列表
- 第二步:以6为步长遍历结果列表,通过切片拆分得到每6个元素一组的子列表
完整代码
# 前置逻辑:你已经完成CSV读取,得到fsa、ghf两个数值列表 # 1. 收集比较结果 compare_result = [] for i in range(len(fsa)): if fsa[i] < ghf[i]: val = 1 else: val = 0 compare_result.append(val) print(val) # 不需要保留原逐行打印效果的话,删掉这行即可 # 2. 按每6个元素拆分并输出 for idx in range(0, len(compare_result), 6): sub_group = compare_result[idx:idx+6] print(sub_group)
精简写法(可选)
用列表推导式可以简化代码,逻辑完全一致:
# 直接生成比较结果列表,自动对齐两个列表的索引 compare_result = [1 if a < b else 0 for a, b in zip(fsa, ghf)] # 生成分组列表 grouped_result = [compare_result[i:i+6] for i in range(0, len(compare_result), 6)] # 逐组打印 for group in grouped_result: print(group)
运行效果说明
如果比较结果总共有12个元素,输出格式和预期完全一致:
[1, 1, 0, 0, 1, 0] [0, 1, 1, 0, 1, 0]
如果总元素数不是6的整数倍,最后一个子列表会自动保留剩余不足6个的元素,不会触发索引错误。
内容的提问来源于stack exchange,提问作者user19386382
相关产品推荐
相关产品推荐

