通过列表迭代3

Coo*_*inx 4 python list

a = [3,5,8,3,9,5,0,3,2,7,5,4]
for o in a[::3]:
    print o
Run Code Online (Sandbox Code Playgroud)

这让我得到了第一个和每3个项目.3,3,0,7

有没有办法可以检索下两个项目?

a = [3,5,8,3,9,5,0,3,2,7,5,4]
for o in a[::3]:
  if o == 0:
    print o
    print o + 1
    print o + 2
Run Code Online (Sandbox Code Playgroud)

输出0 3 2

我知道这不正确,但也许你可以看到我想要做的事情.基本上,我有一长串属性,每个属性有三个部分,parent_id,property_type和property_value,我需要从列表中检索属性的所有三个部分.

Sve*_*ach 14

您可以使用itertools文档中的"grouper"配方执行此操作:

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

例:

>>> a = [3, 5, 8, 3, 9, 5, 0, 3, 2, 7, 5, 4]
>>>  list(grouper(3, a))
[(3, 5, 8), (3, 9, 5), (0, 3, 2), (7, 5, 4)]
Run Code Online (Sandbox Code Playgroud)

  • 该死的笨蛋!:)他们真棒. (3认同)