【问题标题】:Python Split a string by diffrent . full stopsPython 通过 diffrent 拆分字符串。句号
【发布时间】:2015-04-02 22:31:55
【问题描述】:

嘿,我希望能够更改在第三个句号或第二个句号处拆分的字符串,这是我的代码

file = "hey there. this is some demo code. will you nice people please help me."

我想在第二个句号之后 拆分字符串,使其看起来像

"hey there. this is some demo code."

【问题讨论】:

  • 我不明白那个文档
  • '.'.join(file.split('.')[:-2])
  • @RobertStenhouse - 如果你想学习编程,你必须学习如何理解文档。它们非常简单且有据可查。此外,您有 1000 多个关于 SO 的问题可以帮助您解决这个小问题
  • 我可以很好地处理 Java 文档,但我似乎无法理解 Python 文档,因为它的全部内容使阅读变得更加困难,但感谢您的原始帖子

标签: python string split


【解决方案1】:
".".join(file.split(".")[2:])

file.split(".",2)[2:]

这些使用 str.split() (2/3)、str.join() (2/3) 和切片 (2/3)。没有理由为此使用循环或正则表达式。

【讨论】:

  • 太棒了,我把它放到一个可变的打印中,它说它是一个列表,有没有办法在第二个句号之前取出位并将其作为一个不同的字符串
  • 刚试了一下,在我打印第二次完全停止后没有切断
  • 请注意,这仅在 '.' 上拆分,而不是所有句号。
【解决方案2】:

我会这样做:

readf = open("split.txt")

for line in readf:

  a=line.split(".")

readf.close()

print (a[:2])

基本上,您将行存储在 a 中并将其拆分为“。”然后使用您可以随意使用的子序列。 例如a[2:3] 给你第二行和第三行,而 a[:3] 给你所有三个。

【讨论】:

  • 我刚关了电脑,明天早上试试,谢谢
  • 请注意,这只会在'.' 上拆分,而不是所有句号。
  • @RobertStenhouse 嗯,我可能弄错了。我的印象是句号是任何句子结尾的标点符号(例如'.''!''?')。
  • 哦,不,句号是。如果存在不同的标点符号,则不要使用一个
  • user37. ..有没有办法用一个不是来自文件的注射器来做到这一点
【解决方案3】:

一种粗略的方法是使用计数器并循环遍历字符串,添加每个字符直到达到停止限制。

firstString = ""
secondString = ""
stopsAllowed = 1
stopsFound = 0
for i in range(0,len(file)):
  if file[i] == ".":
    stopsFound += 1
  if stopsFound <= stopsAllowed:
    firstString += file[i]
  else:
    secondString += file[i]

【讨论】:

  • 非常不必要和复杂。会投反对票,但这会花费我的代表。
  • 我不知道它有多复杂
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 2014-03-02
相关资源
最近更新 更多