2012-08-03 152 views
-1
for i in l1: 
    print "the i is ", i 
    print i[0] # 'a' 
    print i[1] # (1, 1) 
    n = re.search(r'[a-z]', i[0]) 
    v = (1,1) 
    if i[0] != n: 
    v = (1,1) 
    n = i[0] 
    if i[1] != v: 
     raise ValueError, '[%s, %s] is missing in %s' %(i[0], (i[1][0], i[1][1]-1), production) 

    v = (v[0], v[1] + 1) 

我需要檢查在給定的列表中的任何項是否缺少 L1 = [[ 'A',(1,2)],[ 'A',(1,3) ],['a',(1,4)]] in this case ['a',(1,1)]`丟失,所以我應該報告一個錯誤。我的代碼不工作

同樣,如果我們有列表l1 = ['b',(1,1)],['b',(1,3)],['a',(1,4)]] . In this case [ 'b',(1,2)]`丟失,因此應按照下面的代碼所示報告錯誤。

儘管它存在於列表中,我總是得到['a',(1,1)] l1 = [['a',(1,1)],['a' (1,2)],['a',(1,3)],['a',(1,4)]]

+2

'代碼無法正常工作'。以什麼方式?你有錯誤嗎?如果不是,你期望的輸出與你實際得到的輸出是什麼? – 2012-08-03 22:42:49

+0

v = v + 1 TypeError:只能連接元組(不是「int」)爲元組 – smazon09 2012-08-03 22:47:28

回答

2

想要增加元組的第二個值,而不是元組本身:

v = (v[0], v[1] + 1) 

你需要創建一個新的記錄,如圖所示,由於元組是不可變的自己。