python - 一种获取多个字符串的所有组合的方法(Python)
问题描述
说我输入:
["abc", "def"]
它会给我:
["ad","ae","af","bd","be","bf","cd","ce","cf"]
我使用的代码:
combs = [""]
conv = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"qprs","8":"tuv","9":"vxyz"}
for digit in "23":
for comb in combs:
for loop in range(len(conv.get(digit))):
combs.append(digit)
但是这段代码创建了一个无限循环
解决方案
import itertools
a = ["abc", "def", "hk"]
b = ["".join(s) for s in itertools.product(*a)]
print(b)
输出:['adh', 'adk', 'aeh', 'aek', 'afh', 'afk', 'bdh', 'bdk', 'beh', 'bek', 'bfh', 'bfk', 'cdh', 'cdk', 'ceh', 'cek', 'cfh', 'cfk']
推荐阅读
- python - 打印 eval 无法从字符串打印变量
- r - 使用正则表达式选择性地提取 R 中的子字符串
- html - 过滤字段而不在 Directus 中搜索 HTML 标记
- postgresql - 在 postgres 中为 10 个或更多连接组织快速读取整个表的最佳方法
- javascript - 通过 WebRTC 连接到服务器
- amazon-dynamodb - DynamoDB PutItem 要求 GSI 分区键已经存在
- python - 仅调试时VSCode Python导入错误
- c - 问题:编译成功但结果错误
- mysql - MySQL 中是否有与 SPSS 中的“do repeat”命令等效的命令?
- javascript - 为什么下拉菜单不调用 VueJS 中的函数?