我如何找到这个词是Substitutions:或Insertions python

例如,我的单词是“ brain”,我们需要创建一个函数来检查它是取代还是插入。 例如,“替换”可以是:训练谷物布莱恩布赖因...插入内容:巴林布莱恩...

#I am not sure I did the right way or missing something. And any other way that faster?
#string0 is pattern

def subsitutions(string0,string1):
     sublist = []
    for i in range(len(string0)):
        sublist.append(string0[:i] + string0[i + 1:])
    for i in range(len(string1)):
        if string1[:i] + string1[i + 1:] in sublist:
            print("This word is subsitutions")
            break

def insertions(string0,string1):
    if len(string0)+1 == len(string1):
        for i in range(len(string1)):
            if string1[:i] + string1[i + 1:] == string0:
                print("This word is insertions")
                break
liu_haoran 回答:我如何找到这个词是Substitutions:或Insertions python

set.difference可以轻松为您完成此操作:

>>> set('brian') - set('bryan')
{'i'}
>>> set('brian') - set('byrian')
set()

这是这张支票的肮脏例子:

def check_sub_or_ins(pattern,string):
    if set(pattern) - set(string):
        print("This word is subsitutions")
    else:
        print("This word is insertions")

您将需要检查每个字符串的长度,尽管仅使用set不能对所有字符串都有效

,

看看这是否有帮助

word = "brain"
word_length = len(word)

words_to_check = ["train","grain","blain","bryin","barain","bryain"]

for word_to_check in words_to_check:
    boolean_list = [character in word for character in word_to_check]
    character_occurences = sum(boolean_list)
    if character_occurences == word_length - 1:
        print("{0} is substitution".format(word_to_check))
    elif character_occurences >= word_length - 1 and len(boolean_list) > word_length:
        print("{0} is insertion".format(word_to_check))
本文链接:https://www.f2er.com/3142047.html

大家都在问