有一个偶数项的列表 a = ["foo", 2, "bar", 4, "far", 6],希望对每两个相邻的两个元素打包,是为一组, 使得结果如下是这样的 [("foo", 2), ("bar", 4), ("far", 6)]。如果是要打包是每三个一组呢?
有很多方法可以解决,下面使用迭代器进行处理,大概代码如下:
a = ["foo", 2, "bar", 4, "far", 6]
group_adjacent = lambda x, k: zip(*([iter(x)] * k))
In [1]: a = ["foo", 2, "bar", 4, "far", 6]
In [2]: group_adjacent = lambda x, k: zip(*([iter(x)] * k))
In [3]: group_adjacent(a, 2)
Out[3]: [('foo', 2), ('bar', 4), ('far', 6)]
网友评论