2013-12-13 32 views
1

複雜的迭代如果有人到處理Pytables也許可以給我一個關於這個複雜的表達式,是不工作的線索:超過PyTables

hdf5file = openFile("savedTable.h5", mode = 'r') 
tab = hdf5file.getNode("/Data") 

for i in xrange(1,10): 
      result = [result + 1 for x in tab.where("""(col1== 1) & (col2 == 1) & (col3== i) & ((col4 == 1) | (col5 == 1) | (col6 == 1) | (col7== 1))""")] 

什麼Spyder的是給我的就是這種典型的消息「無效語法」

特別atention到循環「因爲我在......」並在查詢「...... &(COL3 == I)」我不知道,如果這部分可以像做那。

+0

而不是'結果= [結果+ 1 X ...'你mean'result = [x + 1 for x ...'? – jonrsharpe

+0

我不知道,可能是的,如果查詢中的條件被找到,我想要的是將「結果」增加1。由於我沒有給x任何價值,我認爲不可能做x + 1這樣的事情,但我會嘗試。謝謝 – codeKiller

+0

在這種情況下,試着'result + = sum(1 for _ in ...)'或'result + = len(tab.where(...))' – jonrsharpe

回答

0

你說得對,你不能做到這一點:

for i in xrange(1,10): 
    tab.where('col3 == i') 

相反,嘗試:

for i in xrange(1,10): 
    cond = 'col3 == %d' % i 
    tab.where(cond)