程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python一行代碼實現將一個list均分

編輯:Python

需求

需求描述:將一個list按長度n均分

例如:

  1. 輸入list為: list_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. 均分長度n為: num=3
  3. 預期輸出結果:[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

1. 一行代碼

[list_data[i*num:(i+1)*num] for i in range(int(len(list_data)/num) + 1) if list_data[i*num:(i+1)*num]]

2. 函數實現與上面內容

代碼如下:

# 需求
# 需求描述:將一個list按長度n均分
#
# 例如:
#
# 輸入list為:
list_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 均分長度n為:
num = 3
# 預期輸出結果:[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
# 1. 一行代碼
result = [list_data[i*num:(i+1)*num] for i in range(int(len(list_data)/num) + 1) if list_data[i*num:(i+1)*num]]
# 2. 一行函數版
def list_equally_split(list_data, num): return [list_data[i*num:(i+1)*num] for i in range(int(len(list_data)/num) + 1) if list_data[i*num:(i+1)*num]]

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved