Python:将列表与列表合并

时间:2011-07-26 01:08:12

标签: python list

我有一个清单:

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']等等时。

有什么想法吗?

1 个答案:

答案 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']