2014-04-10 168 views
1

我是Python的新手,目前我正在尝试使用一些列表。我有一个具有两个属性的每个对象的对象列表:Python for循环列表

for s in objlist: 
s.attribute1 
s.attribute2 

的问题,这是我想读取和处理对象的时间,像这样:

s1.attribute1 
s1.attribute2 
s2.attribute1 
s2.attribute2 

然后让循环“跳过”下一个对象,因为它已经被处理了。

在Java中它会是这样的:

for [int i = 0, i<list.length, i = i+2] 
list[i].attribute1 
list[i].attribute2 
list[i+1]attribute1 
list[i+1]attribute2 

然后只允许它与I + 2遍历对象的下一个

如何在Python中执行此操作?

+0

我相信你正在寻找的https: //docs.python.org/2/library/functions.html#range –

回答

0

你可以做同样在Python也

for i in xrange(0, len(seq), 2): 
    seq[i].attribute1 
    seq[i].attribute2 
    seq[i+1].attribute1 
    seq[i+1].attribute2 

xrange将同时提供一系列的数字之一。它以0开头,结尾长度为seq,步长值为2

+0

非常感谢fortheyeye! –

0

提供您的列表大小均匀:

for x, y in izip(objlist[::2], objlist[1::2]): 
    x.attribute1 
    y.attribute2 
0

你可以试试这个:

x = [1,2,3,4,5,6,7,8,9,0] 
i = 0 
while i < len(x): 
    print x[i], x[i+1] 
    i += 2 

而x列表必须是偶数大小