Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Python:将列表中的元素与上一个和下一个元素列表进行比较?_List_Python 2.7_Python 3.x_Tuples - Fatal编程技术网

List Python:将列表中的元素与上一个和下一个元素列表进行比较?

List Python:将列表中的元素与上一个和下一个元素列表进行比较?,list,python-2.7,python-3.x,tuples,List,Python 2.7,Python 3.x,Tuples,我有一张单子,比方说 list1 = [('A',[R]), ('B',['A','C']), ('C',['B']), ('B',[]), ('C',['D']), ('D',['C'])] 我试图将第二个列表的第二个元素['A','C']与前一个列表第一个元素'A'和下一个列表第一个元素['C']进行比较。同样,我想将列表的所有第二个元素与上一个和下一个列表的第一个元素进行比较。到目前为止我所尝试的是

我有一张单子,比方说

list1 = [('A',[R]),
         ('B',['A','C']),
         ('C',['B']),
         ('B',[]),
         ('C',['D']),
         ('D',['C'])]
我试图将第二个列表的第二个元素
['A','C']
与前一个列表第一个元素
'A'
和下一个列表第一个元素
['C']
进行比较。同样,我想将列表的所有第二个元素与上一个和下一个列表的第一个元素进行比较。到目前为止我所尝试的是

for i, items in enumerate (list1):
    for j in items[1]:
        if len(j)>0:
            if i !=0 and j == items[i-1][0]:
                print(j,items[i-1][0],'equal')
            if i < len(list1) and j==items[i+1][0]:
                print(j,items[i+1][0],'equal')

引用项目时,需要使用列表1

            if i !=0 and j == list1[i-1][0]:
                print(j,list1[i-1][0],'equal')
            if i -1 < len(list1) and j==list1[i+1][0]:
                print(j,list1[i+1][0],'equal')

正确的代码如下:

for i, items in enumerate(list1):
    for j in items[1]:
        if len(j)>0:
            if i!=0 and j==list1[i-1][0]:
                print(j,j,'equal')
            if i+1 < len(list1) and j==list1[i+1][0]:
                print(j,j,'equal')
对于i,枚举中的项(列表1):
对于第[1]项中的j:
如果len(j)>0:
如果我=0和j==list1[i-1][0]:
打印(j,j,'equal')
如果i+1

您应该在
if
语句中使用
list1
,而不是
items

我猜错误在该代码项中[I+1][0]不,我检查过了,它仍然显示相同的内容
for i, row in enumerate (list1): # Use the list1[1] list as the key data
    for item in row[1]: # Compare all items in this list with previous row first element
                        # and next row first element
        if i > 0: # Previous row
            if item == list1[i-1][0]: 
                print ('{} : {} equal'.format(item, list1[i-1][0]))
        if i < len(list1) - 1: # Next row
            if item == list1[i+1][0]: 
                print ('{} : {} equal'.format(item, list1[i+1][0]))
for i, items in enumerate(list1):
    for j in items[1]:
        if len(j)>0:
            if i!=0 and j==list1[i-1][0]:
                print(j,j,'equal')
            if i+1 < len(list1) and j==list1[i+1][0]:
                print(j,j,'equal')