【问题标题】:Finding all the indexes of a substring given a string containing it in Python [duplicate]在Python中查找给定包含子字符串的子字符串的所有索引[重复]
【发布时间】:2015-12-31 20:25:51
【问题描述】:

例如:

   my_string = "hi how are you?/nIs everything ok?/nAre you happy?"

我需要创建一个包含换行符所有索引的列表 - (/n)。 我该怎么做?

【问题讨论】:

  • 看起来这是在这里解决的:stackoverflow.com/questions/2294493/…
  • @msw 这很接近,但不是很好的重复。这些解决方案都将找到 first 位置,而不是 all 位置。 编辑我在底部看到one answer,在这种情况下,重复是合适的。

标签: python string substring newline


【解决方案1】:

您可以在列表推导中使用enumerate 来创建索引列表。

>>> [index for index, value in enumerate(my_string) if value == '\n']
[15, 33]

顺便说一句,换行符是'\n' 而不是'/n'(注意斜线)

【讨论】:

  • 不幸的是,这没有为新手的问题提供任何上下文,他现在手头有一个工作块,但没有解释为什么该块会做任何事情。相比之下,Bendersky 对重复问题的回答解释说 find 是在字符串中查找的原语,并提供了有关如何为“所有实例”编写它的附加说明。该链中的其他答案增加了第一个答案。相比之下,大理的回答,这是一个重复,依赖于同样的偶然效应,也没有提供任何解释。
【解决方案2】:
import re
my_string = "hi how are you?/nIs everything ok?/nAre you happy?"
list = [m.start() for m in re.finditer('/n', my_string)]

【讨论】:

  • 我认为您在列表理解的开头留下了不必要的(([m.start() for m in re.finditer('/n', my_string)]
  • @JoeYoung 确实,印刷品的剩余物。谢谢,已修复。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 2014-03-17
  • 2011-01-28
  • 1970-01-01
  • 2013-11-04
相关资源
最近更新 更多