以 pythonic 方式组合两个列表

Combine two lists in a pythonic way

我不知道如何搜索这个,但是,我找不到解决我的 pythonic 问题的明显方法。我想合并两个列表(一个是另一个被操纵的列表)并通过保持列表的长度不变来排列它们。

一个例子:

a = ['A','B','C','D']
b = ['a','b','c','d']

combined = [['a','B','C','D'], ['A','b','C','D'], ..., ['a','b','c','d']]

然后我可以使用 itertools 对它们进行排列。然而,第一步对我来说并不好驾驭。我不想要嵌套的 for 循环和 Co.

使用zip, itertools.product and list comprehension:

>>> import itertools
>>> a = ['A','B','C','D']
>>> b = ['a','b','c','d']  # [x.lower() for x in a]
>>> [list(x) for x in itertools.product(*zip(a, b))]
[['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'd'], ['A', 'B', 'c', 'D'],
 ['A', 'B', 'c', 'd'], ['A', 'b', 'C', 'D'], ['A', 'b', 'C', 'd'],
 ['A', 'b', 'c', 'D'], ['A', 'b', 'c', 'd'], ['a', 'B', 'C', 'D'],
 ['a', 'B', 'C', 'd'], ['a', 'B', 'c', 'D'], ['a', 'B', 'c', 'd'],
 ['a', 'b', 'C', 'D'], ['a', 'b', 'C', 'd'], ['a', 'b', 'c', 'D'],
 ['a', 'b', 'c', 'd']]