【问题标题】:Remove elements from delimited string in Python [duplicate]从Python中的分隔字符串中删除元素[重复]
【发布时间】:2019-03-14 09:05:24
【问题描述】:

例如,我有以下字符串:

a-b-c-d-e-f

我想删除第一个元素和最后两个元素,所以输出将是:

b-c-d 

我尝试使用rsplit,但输出是列表:

print string.rsplit('-',)[1:-2]
['b', 'c', 'd']

如何将列表元素组合回字符串?有没有更简单的方法来删除元素而不是使用rsplit?

【问题讨论】:

  • string = '-'.join(new_string) 其中new_string是拆分列表
  • 谢谢大家。效果很好!
  • 这里是 another website,它解释了 str.join,即使使用你的分隔符。
  • @gofvonx,我不认为这是一个骗局,仅仅是因为答案的方法是如此不同。这个问题没有函数知识,所以找到你引用的那个可能很困难。话虽如此。我认为在此处提问之前阅读一些围绕问题的language documentation 是有价值的。

标签: python string split


【解决方案1】:

您可以只组合对 split 和 rsplit 的调用:

a = "a-b-c-d-e-f"
b = a.split("-", 1)[-1].rsplit("-", 2)[0]

但这只是为了“酷拼图效果”。 更易维护的做法当然是在-分隔符处拆分字符串,将数据作为列表进行操作,然后使用join组装回来:

a = "a-b-c-d-e-f"
b = a.split("-")
c = b[1:-2]
d = "-".join(c)

如果您愿意,也可以一起运行:

b = "-".join(a.split("-")[1:-2])

【讨论】:

    【解决方案2】:

    rsplit返回列表,需要将返回列表的元素用'-'连接起来才能得到想要的结果。

    '-'.join(string.rsplit('-',)[1:-2])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 2021-08-30
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2012-07-10
      • 2016-04-19
      相关资源
      最近更新 更多