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')