cc9542 2022-06-10 13:54 采纳率: 96.7%
浏览 48
已结题

python 列表分割 定义一个函数

问题遇到的现象和发生背景

python 列表分割 定义一个函数,函数有两个值,一个是列表 一个是要分割的块数

问题相关代码,请勿粘贴截图
def cl(list,c):
    b = []
    for i in range(0, len(list), c):
        b.append(list[i:i + c])

    return b

print(cl([1, 2, 3, 4, 5, 6, 7, 8, 9],4))

运行结果及报错内容
"""
[[1, 2, 3, 4], [5, 6, 7, 8], [9]]
进程已结束,退出代码为 0
"""
我想要达到的结果

请问如何到达这种效果?
就是 给定块数是4块 ,但是分割的列表不能超过4


"""
错误输出结果
print(cl([1, 2, 3, 4, 5, 6, 7, 8, 9],4))
[[1, 2, 3, 4], [5, 6, 7, 8], [9]]

正确输出结果
print(cl([1, 2, 3, 4, 5, 6, 7, 8, 9],4))
[[1,2,3],[4,5,6],[7,8,9]]
  • 写回答

3条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-10 14:07
    关注

    我感觉题目的意思好像是一定要均分,如果不能均分的话就按最大能均分多少来算
    比如例子里的列表只有9个元素,使用4均分分不了,所以只能按3来均分
    不知道是不是这个意思
    如果是这样的话,代码稍加修改就可以,还要注意只需要分成1个列表情况

    def cl(list,c):
        b = []
        while len(list)%c>0:
            c-=1
        if c==1:return list[:]
        for i in range(0, len(list), c):
            b.append(list[i:i + c])
     
        return b
     
    print(cl([1, 2, 3, 4, 5, 6, 7, 8, 9],4))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月25日
  • 已采纳回答 6月17日
  • 创建了问题 6月10日

悬赏问题

  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题