python - 计算排列 4 个字符长,每个结果 2 个字符
问题描述
from itertools import permutations
perm=permutations(['A','B','C','C','D','D','D','D'],4)
for i in perm:
print (i)
我怎么能打印一个排列,其中 perm 中的值只打印一系列带有 2 个字符的字母(请原谅我的英语)
示例:ADDD、DADD、BDDD、CCDD、CDDD 等(每个排列只有 2 个字符)
解决方案
我认为为此你必须生成所有组合,并过滤到你想要的条件。
保持这一点相同:
from itertools import permutations
perm = permutations(['A', 'B', 'C', 'C', 'D', 'D', 'D', 'D'], 4)
但是,通过使用列表理解,只保留满足您条件的元素。将元素转换为集合,并计算集合的长度。像 ('A', 'B', 'B') 这样的元素被转换为 {'A', 'B'}。
perm = [x for x in perm if len(set(x))==2]
推荐阅读
- react-native - 在反应导航5中传递和获取参数
- python - 如何在某个范围内循环,并重新开始循环直到该范围的开头
- android - Gradle 在 lintVital 期间因 OutOfMemoryError 而失败
- css - 悬停时外部 SVG 路径的 CSS 选择
- azure - failOnStderr: true 时的 Azure 脚本任务,出现非没有此标志的 bash 错误
- python - 如何通过获取整数字段的准确值来验证表单
- crystal-reports - 水晶报表离线二维码生成器
- mysql - MariaDB 需要很长时间才能执行
- java - 是否可以在 Spring Boot 中将 MongoDb 和 PostgreSql 用于同一模型?
- python - 我想在上传之前将文件大小上传限制在 5 mb 以下