借助字典纠正字符串中单词的拼写?

2024-04-24 08:56:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个输入列表,其中REJECTED的拼写写为re1,DATE写为OATE。 我需要更正拼写并得到一个输出列表,如下所示:

output_list = ["REJECTED 00000 00000","DATE TIME =06/27/18 21 37","NACH NE NO XY"]

我能够得到正确的名单个别,但不像上面显示的串联。我能得到一些建议吗?你知道吗

input_list = ["=RE1ECTED 00000 00000",'OATE TIME =06/27/18 21 37','NACH NE NO xy']
Reg_dictionary = {"REJECTED" : ["=RE"],"DATE" : ["OA","DA"] }
for key,value in Reg_dictionary.items():
    temp = [key, value]
    for each_value in value:
        for string_list in input_list:
            count  = -1
            # print (count_number_of_string)
            each_in_string  = string_list.split(" ")
            for each_word in each_in_string:
                count = count + 1
                if each_value in each_word:
                    # print (count)
                    # print (string_list)
                    # print(each_word)
                    # print (key)
                    # print(each_in_string)
                    (each_in_string[count]) =key
                    print(each_in_string)

打印输出(字符串中的每个\u)如下:

['REJECTED', '00000', '00000']

['DATE', 'TIME', '=06/27/18', '21', '37']

预期输出为:

output_list = ["REJECTED 00000 00000","DATE TIME =06/27/18 21 37","NACH NE NO XY"]

Tags: keynoinfordatestringtimevalue
2条回答

你可以这样做:

from functools import reduce 

input_list = ["=RE1ECTED 00000 00000",'OATE TIME =06/27/18 21 37','NACH NE NO xy']
Reg_dictionary = {"REJECTED" : ["=RE"],"DATE" : ["OA","DA"] }
l = []
for key,value in Reg_dictionary.items():
    temp = [key, value]
    for each_value in value:
        for string_list in input_list:
            count  = -1
            # print (count_number_of_string)
            each_in_string  = string_list.split(" ")
            for each_word in each_in_string:
                count = count + 1
                if each_value in each_word:
                    # print (count)
                    # print (string_list)
                    # print(each_word)
                    # print (key)
                    # print(each_in_string)
                    (each_in_string[count]) =key
                    #print(each_in_string)
                    l.append(reduce(lambda x,y: x+' '+y, each_in_string)) # added this line
print(l)

必须先将列表中的元素连接起来,然后再将列表连接起来。您可以将列表中的元素连接起来,用空格作为如下元素之间的分隔符:' '.join(your_list),这将为您提供字符串。然后用[string_1 + ' ' + string_2]将这两个字符串连接在一起。应该是这样:)

相关问题 更多 >