Python 如何按10个一组从列表中获取元素?(或5、或3等)

Python 如何按10个一组从列表中获取元素?(或5、或3等),python,python-2.7,Python,Python 2.7,从分组列表中获取元素的Python方式是什么?也就是说,我想要列表的前10个元素,然后是下10个元素,然后是下10个元素,等等。您可以使用这样的生成器函数 def getElements(data, n): for i in xrange(0, len(data), n): yield data[i:i+n] data = range(100) for i in getElements(data, 20): print i [0, 1, 2, 3, 4, 5,

从分组列表中获取元素的Python方式是什么?也就是说,我想要列表的前10个元素,然后是下10个元素,然后是下10个元素,等等。

您可以使用这样的生成器函数

def getElements(data, n):
    for i in xrange(0, len(data), n):
        yield data[i:i+n]
data = range(100)
for i in getElements(data, 20):
    print i

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
然后像这样迭代生成器

def getElements(data, n):
    for i in xrange(0, len(data), n):
        yield data[i:i+n]
data = range(100)
for i in getElements(data, 20):
    print i

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

您可以使用这样的生成器函数

def getElements(data, n):
    for i in xrange(0, len(data), n):
        yield data[i:i+n]
data = range(100)
for i in getElements(data, 20):
    print i

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
然后像这样迭代生成器

def getElements(data, n):
    for i in xrange(0, len(data), n):
        yield data[i:i+n]
data = range(100)
for i in getElements(data, 20):
    print i

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
希望这是肾盂足够。要更改块(例如大小=
chunk\u大小
),您必须更改
a[i:i+chunk\u大小]
,并将范围更改为
范围(0,len(a),chunk\u大小)


希望它是python式的。要改变chunk(比如大小=
chunk\u size
,你必须改变
a[i:i+chunk\u size]
,并将range改为
range(0,len(a),chunk\u size)

类似的东西?或者看看这里,很多这样的好东西?或者看看这里,很多好东西
[x为x][i:i+10]
是一种说
a[i:i+10]
list(a[i:i+10])
@user2357112loool!没错。我刚开始学习列表理解。不幸的是,它显示了。
[x代表x在a[i:i+10]
是一种说
a[i:i+10]
list(a[i:i+10]的奇怪的冗长方式
@user2357112 LOOOL!没错。我刚开始学习列表理解。不幸的是,它显示了。
内部
的目的是什么?你不能把
内部
的主体变成
getElements
的主体吗?@user2357112哦,是的。那根本没有必要。删除它。谢谢:)
internal
的目的是什么?你不能把
internal
的主体变成
getElements
的主体吗?@user2357112哦,是的。根本不需要。删除了它。谢谢:)