陣列(list)分組 分段

2021-09-07 06:21:05 字數 1291 閱讀 4891

對乙個list進行分組,要求控制每組中的元素個數:

1.使用切片分組:

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

lst可為空,最後返回值也為空

num=3 #

定義每組包含的元素個數

for i in

range(0,len(lst),num):

print lst[i:i+num]

返回:[1, 2, 3]

[4, 5, 6]

[7, 8, 9]

[8, 7, 6]

[5, 4, 3]

[2, 1]

2.使用迭代方式:

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

lst可為空

num=3 #

只要不為0即可,大於lst長度也可以

deflstg(num,lst):

for i in

range(0,len(lst),num):

yield lst[i:i+num]

lstgs =lstg(num,lst)

for i in

lstgs:

print

i返回:

[1, 2, 3]

[4, 5, 6]

[7, 8, 9]

[8, 7, 6]

[5, 4, 3]

[2, 1]

原始笨方法:

#

-*- coding: utf-8 -*-

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

num=4

deflstg(num,lst):

#定義每段的個數num

l =len(lst)

#取分成幾組

g = l/num

#判斷是否有剩餘的數

last = l%num

lstn =

for i in

range(g):

i=i+1n=i*num

m=n-num

if last <>0:

return

lstn

for i in

lstg(num,lst):

print i

print divmod(13,3) #返回(4, 1)

陣列(list)分組 分段

對乙個list進行分組,要求控制每組中的元素個數 1.使用切片分組 lst 1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1 lst可為空,最後返回值也為空 num 3 定義每組包含的元素個數 for i in range 0,len lst num print lst i i n...

陣列分組問題

這個問題是這個樣子滴 有乙個無序 元素個數為n n為偶數 的正整數陣列arr,要求 如何能把這個陣列分割為元素個數為n 2的兩個子陣列,並使兩個子陣列的的和最接近。我的思路是 1 把陣列拆成2個子陣列a和b 2 用a中的每個元素與b中的每個元素比較,陣列值之和的絕對值小於原來的值就交換 其實並不難,...

演算法題 陣列分段

清潔工 假設有m個房間,清潔每個房間耗時用乙個陣列表示,10 20 30 40 50 60 70 80 90,安排n個清潔工,將連續的房間分成n份,每部分耗時求和,其最大值為此種分法的總耗時。求最快的耗時是多少。例如3個清潔工的話,10 20 30 40 50 60 70 80 90,此時是最快的,...