python - 使用迭代器实现 Chop()

标签 python iterator

当前版本:

def chop(ar,size):
    p=len(ar)/size
    for i in xrange(p):
        yield ar[(i*size):((i+1)*size)]

ar 是 list() 的类型。

我想要的是 Chop() 接受迭代器并返回迭代器。

for i in chop(xrange(9),3):
    for j in i:
       print j,
    print

打印

0 1 2
3 4 5
6 7 8

最佳答案

itertools documentation中有一个实现:

def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

关于python - 使用迭代器实现 Chop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3143371/

相关文章:

python - 将字符串中的数字转换为python中的数组

java - 迭代器的迭代器

python - 使用 Python 在 Linux 和 Windows 中查找文件的最快方法是什么?

python - 在 Python 中合成音符(带有钢琴声)

python - 将数据帧转换为列表,groupby() 不起作用

ruby - 遍历一个范围

java - 难以从字符串列表中播放真实值

C++ - 为 std::array 迭代器的 std::array 创建别名

php - 这段PHP代码可以去掉for循环吗?

python - 内联 Python 函数