迭代器

2017-02-23  本文已影响0人  我是奋斗seu

有一个偶数项的列表 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)]

上一篇下一篇

猜你喜欢

热点阅读