我有一些重复的代码。我试图检查句子列表中的每个句子是否在开头都包含某个单词。如果没有,我希望它做一些事情,然后在字典中打印值。否则,我希望它做其他事情,然后再打印一本字典。
但是我不知道如何将有问题的重复代码转换为函数,因为我需要在重复代码内的第一个循环开始时使用一个变量。
到目前为止,这是我的代码:
if not audio_keyword_dictionary:
for index, sentence in enumerate(sentences):
keyword_set_inside_dict = set()
for each_keyword in complete_keyword_list:
if each_keyword in sentence:
keyword_set_inside_dict.add(each_keyword)
keyword_dict[sentence] = keyword_set_inside_dict
for key, value in keyword_dict.items():
print(f'{value} - {key}\n')
else:
for index, sentence in enumerate(sentences):
keyword_set_inside_dict = set()
for each_keyword in complete_keyword_list:
if each_keyword in sentence:
keyword_set_inside_dict.add(each_keyword)
keyword_dict[sentence] = keyword_set_inside_dict
for each_value in audio_keyword_dictionary.values():
if each_value in sentences[index - 1] and sentences[index - 1] != '':
audio_nested_dictionary[each_value] = keyword_dict
for k, v in audio_nested_dictionary.items():
for key, value in v.items():
print(f'{k} - {value} {key}\n')
这是我创建的函数:
def iterate_sentences(sentences, keyword_list):
keyword_dict = dict()
for index, sentence in enumerate(sentences):
keyword_list_inside_dict = list()
for each_keyword in complete_keyword_list:
if each_keyword in sentence:
keyword_list_inside_dict.append(each_keyword)
keyword_set = set(keyword_list_inside_dict)
keyword_dict[sentence] = keyword_set
return keyword_dict
但是如果我需要重复部分之外的“索引”,我该如何使用它?
在这部分中,准确地说,就在重复部分结束的地方之后:
for each_value in audio_keyword_dictionary.values():
if each_value in sentences[index - 1] and sentences[index - 1] != '':
audio_nested_dictionary[each_value] = keyword_dict
不确定是否需要说,但句子是遵循某种模式的句子列表。它以包含 的字符串开头audio{positive_number_here}
,然后是另一个具有实际含义的字符串,然后是另一个audio{positive_number_here + 1}
等等,在两者之间交替。该列表以一个有意义的字符串结尾。
你不需要一个函数来摆脱重复。只需移动if
语句。
for index, sentence in enumerate(sentences):
keyword_set_inside_dict = set()
for each_keyword in complete_keyword_list:
if each_keyword in sentence:
keyword_set_inside_dict.add(each_keyword)
keyword_dict[sentence] = keyword_set_inside_dict
if audio_keyword_dictionary:
for each_value in audio_keyword_dictionary.values():
if each_value in sentences[index - 1] and sentences[index - 1] != '':
audio_nested_dictionary[each_value] = keyword_dict
if audio_keyword_dictionary:
for k, v in audio_nested_dictionary.items():
for key, value in v.items():
print(f'{k} - {value} {key}\n')
else:
for key, value in keyword_dict.items():
print(f'{value} - {key}\n')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句