-
四季花海
如果您稍稍更改数据结构,那么对于itertools模块而言,这是一个微不足道的问题:>>> lst = [1]>>> combine = [["a", "b", "c"], ["A", "B", "C"]]>>> import itertools>>> [lst+list(item) for item in itertools.product(*combine)][[1, 'a', 'A'], [1, 'a', 'B'], [1, 'a', 'C'], [1, 'b', 'A'], [1, 'b', 'B'], [1, 'b', 'C'], [1, 'c', 'A'], [1, 'c', 'B'], [1, 'c', 'C']]
-
临摹微笑
>>> from itertools import product>>> lst = [1]>>> combine = [["a", "b", "c"], ["A", "B", "C"]]>>> list(product(*[lst]+combine))[(1, 'a', 'A'), (1, 'a', 'B'), (1, 'a', 'C'), (1, 'b', 'A'), (1, 'b', 'B'), (1, 'b', 'C'), (1, 'c', 'A'), (1, 'c', 'B'), (1, 'c', 'C')]你也可以使用list(product(lst, replace_lst1, replace_lst2))
-
慕码人2483693
我将使用itertools.product,外加一个测试来替换?。按值:lst = [1, '?2','?3']replace_lst1 = ['a','b','c']replace_lst2 = ['A', 'B', 'C']res = []#put as many replace_lst as you need herefor values in itertools.product(replace_lst1, replace_lst2): val_iter = iter(values) res.append([x if str(x).find('?') == -1 else next(val_iter) for x in lst])使用val_iter可以将?*放置在任何位置(但不能以任何顺序放置)。