【发布时间】:2020-08-17 16:30:29
【问题描述】:
我有一个多行脚本文件,其中包含文本行和相应的时间戳。它看起来像这样:
00:02:01,640 00:02:04,409
word word CHERRY word word
00:02:04,409 00:02:07,229
word APPLE word word
00:02:07,229 00:02:09,380
word word word word
00:02:09,380 00:02:12,060
word BANANA word word word
现在,如果文本包含我已经存储在列表中的特定单词(水果类型),这些单词将作为键存储在字典中。我的代码:
Dict = {}
FruitList = []
for w in transcript.split():
if w in my_list:
FruitList.append(w)
keys = FruitList
打印keys的输出为:['CHERRY', 'APPLE', 'BANANA']。
继续前进,我的问题是我想提取属于包含水果的行的时间戳,并将它们作为值存储在字典中 - 但只有那些对应于下面的行的时间戳,其中给出了一种水果. 对于这个任务,我有几个代码 sn-ps:
values = [] # shall contain timestamps later
timestamp_pattern = re.compile(r"\d{2}:\d{2}:\d{2},\d{3} \d{2}:\d{2}:\d{2},\d{3}")
for i in keys:
Dict[i] = values[i]
不幸的是,我不知道如何编写代码以仅获取相关的时间戳并将它们作为值与它们的键(水果)一起存储在字典中。
所需的输出 (Dict) 应如下所示:
{'CHERRY': '00:02:01,640 -> 00:02:04,409',
'APPLE': '00:02:04,409 -> 00:02:07,229',
'BANANA': '00:02:09,380 -> 00:02:12,060'}
谁能帮忙?
非常感谢!
【问题讨论】:
-
你有时间检查我的方法吗?对你起作用吗?如果不是,那是什么问题?
-
@WiktorStribizew:对于迟到的答案,我很抱歉,但中间出现了一些问题,所以昨天晚上我没有足够的时间来测试它。我现在就试试你的方法,让你知道它是否适合我:-)
-
@WiktorStribiżew:是的,它有效!谢谢!然而,不幸的是,这种方法对于我的任务来说并不是 100% 理想的,因为水果的类型需要在正则表达式模式中手动输入。但至于我的成绩单,我不确定文本中会出现哪些果实,或者是否会有任何果实。如果有,它们应该完全像在您的方法的输出中那样处理。 :-)
-
没问题,动态构建模式就好,下面看我的回答。
标签: python python-3.x regex dictionary