我有一个清单:
packets=[['B', 'A'], ['B', 'C'], ['A', 'D'], ['C', 'D'], ['C', 'E'], ['D', 'E'], []]
我在同一个列表中有两个for循环,例如:
for a in packets[:]:
for b in packets[:]:
即每次a=['B','A']
b
从['B','A']
一直迭代到['D','E']
。这就是我想要做的事情:
如果a
的最后一个元素等于b
的第一个元素,即a=['B','A']
和b=['A','D']
时我必须['B','A','D']
。同样,['B','A','D']
的最后一个元素等于['D','E']
的第一个元素。所以,现在我必须['B','C','D','E']
。
同样,当A=['B','C']
和b=['C','E']
我必须['B','C','E']
时。当A=['B','C']
和b=['C','D']
以及b=['D','E']
我必须['B','C','D','E']
等等时。
有什么想法吗?
答案 0 :(得分:2)
不确定这是否是您想要的,但
>>> packets=[['B', 'A'], ['B', 'C'], ['A', 'D'], ['C', 'D'], ['C', 'E'], ['D', 'E'], []]
>>>
>>> for a in packets:
... for b in packets:
... if a and b and a[-1]==b[0]:
... print a[:-1]+b
... packets.append(a[:-1]+b)
...
['B', 'A', 'D']
['B', 'C', 'D']
['B', 'C', 'E']
['A', 'D', 'E']
['C', 'D', 'E']
['B', 'A', 'D', 'E']
['B', 'C', 'D', 'E']