亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將列表分成較小的列表

將列表分成較小的列表

UYOU 2021-03-28 16:15:48
def group(l,size):    length = len(l)    new = []    for i in range(0,length):        for j in range(i,size):            new[i].append(l[j])    print new上面的函數組(列表,大小),該函數組將一個列表分成多個給定大小的較小列表。我需要這樣的東西輸入:group([1、2、3、4、5、6、7、8、9],3)輸出:[[1、2、3],[4、5、6],[7、8 9]]但是上面的代碼的問題是索引顯示超出范圍。代碼有什么問題?如何將元素追加到列表列表中?
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

使用切片。


>>> def group(l, size):

...     return [l[i:i+size] for i in range(0, len(l), size)]

... 

>>> group([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


查看完整回答
反對 回復 2021-04-06
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

嘗試:


def group(l,size):

    length = len(l)

    new = []

    for i in range(0, length/size):

        new.append([])

    for i in range(0,len(new)):

        for j in range(i*size,(i*size)+size):

            new[i].append(l[i+j])

    print new

編輯:不,不要這樣做。使用像falsetru這樣的切片來說明。


查看完整回答
反對 回復 2021-04-06
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

大概的解決辦法是這樣的:]


def group(l,size):

    length = len(l)

    newlist = []

    newgroup = []

    j = 0

    for i in range(0,length):

        if(j<size - 1):

            j += 1

            newgroup.append(l[i])

        else:

            j = 0

            newgroup.append(l[i])

            newlist.append(newgroup)

            newgroup = []

    if(newgroup != []):

        newlist.append(newgroup)

    return newlist


print(group([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 3))

結果:[[1、2、3],[4、5、6],[7、8、9],[10、11]]


查看完整回答
反對 回復 2021-04-06
  • 3 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號