码迷,mamicode.com
首页 > 编程语言 > 详细

python 使用zip合并相邻的列表项

时间:2017-06-05 10:25:47      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:iter   zip   nbsp   for   class   div   lambda   函数   切片   

1 >>> a = [1, 2, 3, 4, 5, 6]
2 >>> zip(*([iter(a)] * 2))
3 [(1, 2), (3, 4), (5, 6)]

函数形式:

1 >>> group_adjacent = lambda a, k: zip(*([iter(a)] * k))
2 >>> group_adjacent(a, 3)
3 [(1, 2, 3), (4, 5, 6)]
4 >>> group_adjacent(a, 2)
5 [(1, 2), (3, 4), (5, 6)]
6 >>> group_adjacent(a, 1)
7 [(1,), (2,), (3,), (4,), (5,), (6,)]

切片形式:

1 >>> zip(a[::2], a[1::2])
2 [(1, 2), (3, 4), (5, 6)]
3  
4 >>> zip(a[::3], a[1::3], a[2::3])
5 [(1, 2, 3), (4, 5, 6)]

列表推导式:

1 >>> group_adjacent = lambda a, k: zip(*(a[i::k] for i in range(k)))
2 >>> group_adjacent(a, 3)
3 [(1, 2, 3), (4, 5, 6)]
4 >>> group_adjacent(a, 2)
5 [(1, 2), (3, 4), (5, 6)]
6 >>> group_adjacent(a, 1)
7 [(1,), (2,), (3,), (4,), (5,), (6,)]

 

python 使用zip合并相邻的列表项

标签:iter   zip   nbsp   for   class   div   lambda   函数   切片   

原文地址:http://www.cnblogs.com/WhatTTEver/p/6942625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!