如何用itertools.product()实现多列表字符串元素全组合拼接?
多列表字符串数字全组合拼接实现方案
itertools.product()完全可以满足你的需求,你没成功应该是没处理好笛卡尔积结果的拼接步骤。直接调用product会返回元组的迭代器,只需把每个元组内的字符串元素拼接即可得到目标结果。
代码示例
import itertools # 示例列表(可扩展至100个) list_a = ['8', '0', '9', '5', '7'] list_b = ['8', '0', '9', '5', '7'] list_c = ['1', '3'] # 把所有待组合的列表存入一个集合 all_lists = [list_a, list_b, list_c] # 生成全组合并拼接字符串 result = [''.join(tuple_item) for tuple_item in itertools.product(*all_lists)] # 输出结果示例:['881', '883', '801', '803', ...] print(result)
关键说明
itertools.product(*all_lists)中的*是解包操作,能把all_lists里的每个列表作为独立参数传入product,不管你有多少个列表(哪怕100个)都能正常处理。''.join(tuple_item)负责把product返回的每个元组(比如('8','0','3'))拼接成完整的字符串'803'。
如果你的列表是动态生成的(比如从文件或接口获取100个列表),只需把所有列表存入all_lists即可,无需修改核心逻辑。
内容的提问来源于stack exchange,提问作者артем костриков
相关产品推荐
相关产品推荐

