【问题标题】:Arrange list by which word comes first in given sentence/string in Python在 Python 中的给定句子/字符串中排列哪个单词首先出现的列表
【发布时间】:2019-08-23 13:16:38
【问题描述】:

我需要代码按照它们在字符串(句子)中出现的顺序对(单词)列表进行排序。

例如:

list = ["small dog", "big dog", "medium dog"]

sentence = "Jack has a big dog not a small dog or medium dog."

那么预期的 new_list 将是:

new_list = ["big dog", "small dog", "medium dog"]

提前谢谢你!

【问题讨论】:

  • 请展示你的尝试
  • 并且不要将您的列表命名为list,因为它是一个 buitlin 函数
  • list 中的条目在 sentence 中找不到会怎样?
  • @BlackThunder 我尝试索引列表中的每个字符,然后根据它们的索引对列表进行排序(但没有成功:)),是的!您对 list 的使用是正确的,但我只是匆忙为示例快速编写了它
  • 请将该代码显示为对您问题的编辑

标签: python string list sorting


【解决方案1】:

您可以使用sorted按句子中的位置排序:

_list = ['small dog', 'medium dog', 'big dog']

sentence = "Jack has a big dog not a small dog or medium dog."

new_list = sorted(_list, key=sentence.find)

['big dog', 'small dog', 'medium dog']

真的不想为变量使用内置名称,例如listdictset

【讨论】:

  • 你不需要 lambda。你可以说 key=sentence.find
  • @C.Nivs 谢谢!并为快速解答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 1970-01-01
  • 2014-03-25
  • 2019-06-25
  • 2020-03-02
  • 1970-01-01
相关资源
最近更新 更多