gpt4 book ai didi

python - 从列表中提取出现在特定单词之后的第一个元素

转载 作者:行者123 更新时间:2023-12-01 09:06:10 25 4
gpt4 key购买 nike

我有一个字符串和一个列表,如下所示:

text = 'Sherlock Holmes. PARIS. Address: 221B Baker Street, london. Solving case in Madrid.'

city = ['Paris', 'London', 'Madrid']

我想从列表中提取出现在单词 Address 之后的第一个元素。

这是我使用 nltk 解决问题的方法

import nltk

loc = None
flag = False
for word in nltk.word_tokenize(text):
if word == 'Address':
flag = True

if flag:
if word.capitalize() in city:
loc = word
break

print(loc)

我得到了上面预期的结果,即伦敦

但在实际场景中,我的文字太大,而且城市列表也太大,有更好的方法吗?

最佳答案

我认为最容易实现的目标是,您可以将 city 转换为 set 来进行常量时间成员资格检查。除此之外,请考虑使用 next 和默认参数来返回下一个城市。

city = {'Paris', 'London', 'Madrid'}
while text:
text = text.partition('Address')[-1].strip()
print(
next((w for w in nltk.word_tokenize(text) if w.capitalize() in city), None))

关于python - 从列表中提取出现在特定单词之后的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52033188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com