我想将一些文本附加到新列表中,直到列表满足特定字符串
I want to append some text into new list until list meets specific strings
我正在预处理特朗普-希拉里辩论脚本文本以创建 3 个列表,其中将包括每 3 个人的说法。
整个脚本是 1046 个列表
部分正文如下
for i in range(len(loaded_txt)):
print("load_text[i]",load_text[i])
loaded_txt[i] 特朗普:不,它会完全帮助你。我们必须做的一件事是:废除并取代被称为奥巴马医改的灾难。它正在摧毁我们的国家。它正在摧毁我们的企业,我们的小企业和我们的大企业。我们必须废除和取代奥巴马医改。
loaded_txt[i]
loaded_txt[i] 你看看我们在 17 年付出的代价,这是一场灾难。如果我们不废除和替换——现在,它可能会因自身重量而消亡。但奥巴马医改必须取消。这是——保费上涨了 60%、70%、80%。明年他们将上涨超过 100%。
loaded_txt[i]
loaded_txt[i] 我真的很高兴保费已经开始——至少人们看到了正在发生的事情,因为她想保留奥巴马医改,她想让它变得更糟,而且它不会变得更糟。以最昂贵的价格获得糟糕的医疗服务。我们必须废除和取代奥巴马医改。
loaded_txt[i]
loaded_txt[i] 华莱士:克林顿国务卿,同样的问题,因为在这一点上,社会保障和医疗保险将 运行 退出,信托基金将 运行没钱了。作为总统,您会考虑——您会考虑达成一项大交易,一项包括增税和削减福利以试图挽救这两个计划的交易吗?
我尝试将列表附加到 TRUMP_script_list=[],如果列表中有 "TRUMP:",就像这样
TRUMP_script_list=[]
for i in range(len(loaded_txt)):
if "TRUMP:" in loaded_txt[i]:
TRUMP_script_list.append(loaded_txt[i])
但问题是没有名字的列表。
但是没有名字的文本应该是特朗普的说法,如果它在带有特朗普名字的文本下,直到列表遇到包含非特朗普名字的文本(华莱士或克林顿)
我尝试了 "while" 循环,如果列表包含其他名称(华莱士、克林顿),该循环将终止。但未能实施。
如何实现这个算法或任何其他好主意?
定义获取标题的函数:
def get_title(text, titles, previous_title):
for title in titles:
if title in text:
return title
return previous_title
定义参考词典:
name_script_list = {'TRUMP:':TRUMP_script_list, 'HILLARY:':HILLARY_script_list, 'WALLACE:':WALLACE_script_list}
titles = set(name_script_list.keys())
title = ''
在 for 循环中遍历列表:
for text in loaded_txt:
title = get_title(text, titles, title)
name_script_list[title].append(text)
基本上这个想法是 get_title() 得到一系列的标题来尝试,以及最后一个标题是什么。如果出现任何标题,它 returns 那个。否则,它 returns 前面的标题
我将初始标题初始化为''
。只要文本的第一行中有标题,这就会起作用。如果没有,它会抛出一个错误。对此的修复取决于您希望如何实施。您只是不想考虑这种情况(表示 loaded_txt 或可能标题列表中的错误)?您想将特定人的名字设置为默认初始标题吗?你想跳过行直到初始标题吗?有多种方法,我不确定您更喜欢哪种方法
我正在预处理特朗普-希拉里辩论脚本文本以创建 3 个列表,其中将包括每 3 个人的说法。 整个脚本是 1046 个列表
部分正文如下
for i in range(len(loaded_txt)):
print("load_text[i]",load_text[i])
loaded_txt[i] 特朗普:不,它会完全帮助你。我们必须做的一件事是:废除并取代被称为奥巴马医改的灾难。它正在摧毁我们的国家。它正在摧毁我们的企业,我们的小企业和我们的大企业。我们必须废除和取代奥巴马医改。
loaded_txt[i]
loaded_txt[i] 你看看我们在 17 年付出的代价,这是一场灾难。如果我们不废除和替换——现在,它可能会因自身重量而消亡。但奥巴马医改必须取消。这是——保费上涨了 60%、70%、80%。明年他们将上涨超过 100%。
loaded_txt[i]
loaded_txt[i] 我真的很高兴保费已经开始——至少人们看到了正在发生的事情,因为她想保留奥巴马医改,她想让它变得更糟,而且它不会变得更糟。以最昂贵的价格获得糟糕的医疗服务。我们必须废除和取代奥巴马医改。
loaded_txt[i]
loaded_txt[i] 华莱士:克林顿国务卿,同样的问题,因为在这一点上,社会保障和医疗保险将 运行 退出,信托基金将 运行没钱了。作为总统,您会考虑——您会考虑达成一项大交易,一项包括增税和削减福利以试图挽救这两个计划的交易吗?
我尝试将列表附加到 TRUMP_script_list=[],如果列表中有 "TRUMP:",就像这样
TRUMP_script_list=[]
for i in range(len(loaded_txt)):
if "TRUMP:" in loaded_txt[i]:
TRUMP_script_list.append(loaded_txt[i])
但问题是没有名字的列表。 但是没有名字的文本应该是特朗普的说法,如果它在带有特朗普名字的文本下,直到列表遇到包含非特朗普名字的文本(华莱士或克林顿)
我尝试了 "while" 循环,如果列表包含其他名称(华莱士、克林顿),该循环将终止。但未能实施。
如何实现这个算法或任何其他好主意?
定义获取标题的函数:
def get_title(text, titles, previous_title):
for title in titles:
if title in text:
return title
return previous_title
定义参考词典:
name_script_list = {'TRUMP:':TRUMP_script_list, 'HILLARY:':HILLARY_script_list, 'WALLACE:':WALLACE_script_list}
titles = set(name_script_list.keys())
title = ''
在 for 循环中遍历列表:
for text in loaded_txt:
title = get_title(text, titles, title)
name_script_list[title].append(text)
基本上这个想法是 get_title() 得到一系列的标题来尝试,以及最后一个标题是什么。如果出现任何标题,它 returns 那个。否则,它 returns 前面的标题
我将初始标题初始化为''
。只要文本的第一行中有标题,这就会起作用。如果没有,它会抛出一个错误。对此的修复取决于您希望如何实施。您只是不想考虑这种情况(表示 loaded_txt 或可能标题列表中的错误)?您想将特定人的名字设置为默认初始标题吗?你想跳过行直到初始标题吗?有多种方法,我不确定您更喜欢哪种方法