【问题标题】:Find specific group of words in a string list在字符串列表中查找特定的单词组
【发布时间】:2022-01-08 14:16:45
【问题描述】:

假设我有一个从文本生成的字符串列表:

string_lst = ['A', 'cat', 'is', 'a', 'cat', 'but', 'a', 'dog', 'is', 'not', 'a', 'cat']

(条件是保持字符串列表保持原样。)

假设字符串具有以下分配:

A | WORD

cat | ANIMAL

is | WORD

a | WORD

cat | ANIMAL

but | WORD

a | WORD

dog | ANIMAL

is | WORD

not | WORD

a | WORD

cat | ANIMAL

我需要你只找到自然顺序中的字符串(ANIMAL + WORD + WORD + ANIMAL),也就是说,给我一组按照这个确切顺序的单词。 使用上面的示例,结果将是:'cat is a cat', 'cat but a dog'

有什么想法吗?

【问题讨论】:

  • 您是否忘记发布遇到问题的代码?
  • 欢迎来到 SO。因为这看起来像是没有试探性的家庭作业或作业。请阅读 How to Askminimal reproducible example 并更新您的帖子以符合 Stack 标准。您主要应该回答以下问题:到目前为止,您尝试了什么?以及您面临什么问题?
  • 凯撒你好。我实际上有这个概念,但我无法开发代码。 Emil105 帮了我很多忙!!!感谢社区。我已经有了代码,了解如何改进 Python。我希望有一天能成为 Emil105 来帮助同事。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python string list


【解决方案1】:

你只需要一份所有动物的清单

string_lst = ['A', 'cat', 'is', 'a', 'cat', 'but', 'a', 'dog', 'is', 'not', 'a', 'cat']

animals = ['dog', 'cat']
result = []
for i in range(len(string_lst) - 4):
    if string_lst[i] in animals and string_lst[i + 1] not in animals and string_lst[i + 2] not in animals and string_lst[i + 3] in animals:
        result.append(string_lst[i:i + 4])

print(result)

【讨论】:

  • Emil105,非常感谢您的帮助。我通常总是在谷歌上查找它,在 Python 页面上,我设法解决出现的僵局......这是我第一次在社区中发布。我的问题是应用哪个概念,你的回答肯定会拓宽我的知识,因为我会更深入,而不仅仅是复制和粘贴。再次,非常感谢。我投了赞成票,但它没有出现,因为我相信我是新来的......祝你 2022 年快乐。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 2022-11-17
  • 2018-06-02
  • 1970-01-01
相关资源
最近更新 更多