2012-08-03 97 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) 

你需要创建一个新的记录,如图所示,由于元组是不可变的自己。