我已经尝试了许多技术,但我相信有一种比较顺畅的方法可以完成这个任务。
假设我有两个列表,它们中每个列表都有相同数量的项目(每个列表各有4个):
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3, 4]
我想要将这些列表以所有可能的方式合并,并保留顺序。以下是示例输出:
a, b, c, d, 1, 2, 3, 4
1, 2, 3, 4, a, b, c, d
a, b, 1, 2, c, 3, 4, d
重点是每个列表都必须保持其顺序,因此一个项目在输出中不能在列表中的位置考虑时先于另一个项目。因此,例如输出不能为:
a, b, **d**, c, 1... > d precedes c whereas c is before d in the original list
1, **4**, a, b, 3.... > 4 precedes 3 whereas 3 is before 4 in the original list
我想这个想法是将第二个列表以所有可能的方式合并到第一个列表中。一个完整的示例是:
a = [a, b]
b = [1, 2]
期望的输出:
ab12
a1b2
a12b
1ab2
1a2b
12ab
我应该如何进行这个操作?itertools
有没有相应的功能可以实现?或者还有其他方法可以完成此操作吗?请帮忙!