在Python中从定界字符串中删除元素

时间:2018-10-09 14:32:12

标签: python string split

例如,我有以下字符串:

a-b-c-d-e-f

我要删除第一个元素和最后两个元素,因此输出为:

b-c-d 

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

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

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

2 个答案:

答案 0 :(得分:2)

您可以仅合并拆分和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])

答案 1 :(得分:1)

rsplit返回列表,您需要将返回列表的元素与'-'结合在一起才能得到所需的结果。

<script> 
var data = [ { _id: "5bbbb89a1a3ab50bcbd750a3",
    desc: 'Market',
    total: 4000,
    amount: 1,
    timestamp: '10/8/2018  4:05:45  PM' },
  { _id: "5bbbb8ac1a3ab50bcbd750a7",
    desc: 'Deliver',
    total: 2000,
    amount: 1,
    timestamp: '10/8/2018  4:06:03  PM' },
  { _id: "5bbbb8ac1a3ab50bcbd750a8",
    desc: 'Market',
    total: 4000,
    amount: 1,
    timestamp: '10/8/2018  4:06:03  PM' },
  { _id: "5bbbb8ac1a3ab50bcbd750a9",
    desc: 'CPM',
    total: 14000,
    amount: 1,
    timestamp: '10/8/2018  4:06:03  PM' },
  { _id: "5bbca335ef3899eb5fcbed51",
    desc: 'Deliver',
    total: 4000,
    amount: 2,
    timestamp: '10/9/2018  8:46:44  AM' }]
</script>