如何将二维Python列表转换为含所有组合字符串的一维列表
生成所有子列表元素组合的字符串
推荐方案:使用 itertools.product
Python 的 itertools.product 是处理这类笛卡尔积问题的最优解,它可以直接生成从每个子列表中选一个元素的所有组合。
代码实现:
import itertools input_list = [['D', 'S'], ['A', 'M'], ['I', 'N'], ['C', 'F'], ['E', 'T']] result = [''.join(combination) for combination in itertools.product(*input_list)] print(result)
运行后会得到所有符合要求的字符串列表,比如 DAICE、DAICT、SMNFT 等都包含在内。
手动循环实现(无依赖)
如果不想用标准库,也可以用嵌套循环手动实现,但这种方式仅适用于子列表数量固定的场景:
input_list = [['D', 'S'], ['A', 'M'], ['I', 'N'], ['C', 'F'], ['E', 'T']] result = [] for a in input_list[0]: for b in input_list[1]: for c in input_list[2]: for d in input_list[3]: for e in input_list[4]: result.append(a + b + c + d + e) print(result)
这种方法的局限性很明显——如果子列表的个数变化,你得同步修改循环嵌套的层数,所以不推荐在实际项目中使用,除非是为了理解底层逻辑。
内容的提问来源于stack exchange,提问作者PiggyZ
相关产品推荐
相关产品推荐

