Python代碼閱讀(第31篇):將一個列表分割成指定大小的小列表


Python 代碼閱讀合集介紹:為什么不推薦Python初學者直接看項目源碼

本篇閱讀的代碼實現了將列表分割成指定大小的小列表的功能。最后一個小列表的長度由實際剩余的項而定。

本篇閱讀的代碼片段來自於30-seconds-of-python

chunk

from math import ceil

def chunk(lst, size):
  return list(
    map(lambda x: lst[x * size:x * size + size],
      list(range(0, ceil(len(lst) / size)))))

# EXAMPLES
chunk([1, 2, 3, 4, 5], 2) # [[1,2],[3,4],[5]]

chunk函數接收一個列表和一個規模參數,返回分割后的小列表。函數使用list()range()來創建一個序號列表,指明分割后的列表序號。在序號列表上使用map()並用輸入列表的切片來填充它。最后,返回新創建的列表。

math.ceil(x)函數返回x的上限,即大於或者等於x的最小整數。輸入列表的長度無法被分割規模整除的時候,最后剩余的項仍然會合並成一個列表,所以,這里需要使用math.ceil(x)獲取大於或者等於 (len(lst) / size)的最小整數。

函數通過list()range()生成長度為小列表個數的序號列表(從0開始),輸入列表lst的切片lst[x * size:x * size + size]就是第x個小列表的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM