如何将字符串列表分开?

2024-06-01 05:54:03 发布

您现在位置:Python中文网/ 问答频道 /正文

输入列表如下:

l=[["A","B"],["C","D","E"],["F","G"]]

我想用这个列表做的是:

o = ["ACF", "ACG", "ADF", "ADG", "AEF", "AEG",
     "BCF", "BCG", "BDF", "BDG", "BEF", "BEG"]

首先,我尝试用标准函数reduce和functools的mul生成一个len和multiple的列表。你知道吗

ls = list(map(len,l))
ll = ["" for i in range(reduce(mul, ls, 1))]

下一步,我没有有效或“Python”的想法来解决这个问题。你知道吗

顺便说一下,这似乎是树遍历的类似问题,但我认为这是多父树或与图形实现相关的问题。你知道吗

为了提高处理大量列表的内存效率,如何使用python生成器通过使用有向图或任何其他算法来解决这个问题?你知道吗


Tags: reduce列表lenlsbcfmulbdfadf
1条回答
网友
1楼 · 发布于 2024-06-01 05:54:03

使用^{}

>>> import itertools
>>> l=[["A","B"],["C","D","E"],["F","G"]]
>>> list(map(''.join,itertools.product(*l)))
['ACF', 'ACG', 'ADF', 'ADG', 'AEF', 'AEG', 'BCF', 'BCG', 'BDF', 'BDG', 'BEF', 'BEG']

根据文件:

Cartesian product of input iterables. Roughly equivalent to nested for-loops in a generator expression. For example, product(A, B) returns the same as ((x,y) for x in A for y in B).

相关问题 更多 >