微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得字符串的组合元音或辅音?

如何解决如何获得字符串的组合元音或辅音?

给定指数的可能组合数 例如单词 BANANA 的索引 [0] 应该给我:

{'B','BA','BAN','BANA','BANAN','BANANA'}
word='BANANA'
indices=[0,2,4]
def find_combinations(word:str,indices:list):
    a=[''.join(l) for i in range(len(word)) for l in combinations(word,i+1)]
    b=[x for x in a if x.startswith('B')]
    return b

输出

set(b)
{'B','BAA','BAAA','BAAN','BAANA','BANAA','BANANA','BANN','BANNA','BN','BNA','BNAA','BNAN','BNANA','BNN','BNNA'}

期望输出

{'B','BANANA'}

解决方法

您不需要组合,您可以使用 slicesrange 轻松生成从特定索引开始的前缀。

from typing import List

def get_parts(word: str,start: int) -> List[str]:
    return [word[start:i] for i in range(start + 1,len(word) + 1)]

(显然,如果您需要将其更改为 return { ... },您可以将其更改为 set

>>> get_parts("BANANA",0)
['B','BA','BAN','BANA','BANAN','BANANA']

>>> get_parts("BANANA",2)
['N','NA','NAN','NANA']

>>> get_parts("BANANA",4)
['N','NA']
,

您可以根据给定单词的索引,向前创建组合。

word = "BANANA"
indice = [0,2,4]

def find_comb(word:str,indice:list):
    final = []
    for i in indice:
        local = []
        new = ""
        for j in word[i:]:
            new = new + j
            local.append(new)
        final.append(local)
    return final

print(*find_comb(word,indice),sep='\n')

这将为您提供列表列表作为组合索引。

输出:

['B','BANANA']
['N','NANA']
['N','NA']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?