您的位置:首页 > 编程语言 > Python开发

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里

2015-04-29 16:13 369 查看
python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里

贴吧上有人问python 问题:

有一段数组,把它分成几个区间,取每个区间的最大值存到另一个数组里

比如数组a[1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0]

看看python培训黄哥所写的2个方法。

第一种方法:

# coding:utf-8

"""

黄哥python远程视频培训班

https://github.com/pythonpeixun/article/blob/master/index.md

黄哥python培训试看视频播放地址

https://github.com/pythonpeixun/article/blob/master/python_shiping.md

咨询qq:1465376564

"""

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

def group(lst, n):

num = len(lst) % n

zipped = zip(*[iter(lst)] * n)

return zipped if not num else zipped + [lst[-num:], ]

tmp = group(lst, 3)

max_lst = [max(item) for item in tmp]

print max_lst

#[3, 6, 9, 8, 5, 2]

第二种方法

# coding:utf-8

"""

黄哥python远程视频培训班

https://github.com/pythonpeixun/article/blob/master/index.md

黄哥python培训试看视频播放地址

https://github.com/pythonpeixun/article/blob/master/python_shiping.md

咨询qq:1465376564

"""

def group(seq, size):

def take(seq, n):

for i in xrange(n):

yield seq.next()

if not hasattr(seq, 'next'):

seq = iter(seq)

while True:

x = list(take(seq, size))

if x:

yield x

else:

break

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

lst_group = group(lst, 3)

max_lst = [max(item) for item in list(lst_group)]

print max_lst
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐