2014-04-10 55 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列表必須是偶數大小