我如何在python中减去两个字符串?

时间:2013-08-26 23:18:17

标签: python string addition subtraction

我有一个长字符串,基本上是str="lamp, bag, mirror,"(和其他项目)

之类的列表

我想知道我是否可以添加或减去一些项目,在其他编程语言中我可以轻松做到:str=str-"bag,"并获取str="lamp, mirror,"这在python中不起作用(我在W8上使用2.7) PC)

有没有办法将字符串拆分成“bag”,并以某种方式将其用作减法?然后我仍然需要弄清楚如何添加。

7 个答案:

答案 0 :(得分:35)

你也可以这样做

print "lamp, bag, mirror".replace("bag,","")

答案 1 :(得分:22)

这个怎么样?:

def substract(a, b):                              
    return "".join(a.rsplit(b))

答案 2 :(得分:11)

只要您使用格式正确的列表

,就可以执行此操作
s0 = "lamp, bag, mirror"
s = s0.split(", ") # s is a list: ["lamp", "bag", "mirror"]

如果列表格式不正确,您可以按照@Lattyware的建议执行以下操作:

s = [item.strip() for item in s0.split(',')]

现在删除元素:

s.remove("bag")
s
=> ["lamp", "mirror"]

无论哪种方式 - 重建字符串,请使用join()

", ".join(s)
=> "lamp, mirror"

另一种方法是使用replace() - 但要小心要替换的字符串,例如"mirror"最后没有尾随,。< / p>

s0 = "lamp, bag, mirror"
s0.replace("bag, ", "")
=> "lamp, mirror"

答案 3 :(得分:1)

你应该将你的字符串转换为字符串列表然后做你想要的。看

my_list="lamp, bag, mirror".split(',')
my_list.remove('bag')
my_str = ",".join(my_list)

答案 4 :(得分:1)

from re import sub

def Str2MinusStr1 (str1, str2, n=1) :
    return sub(r'%s' % (str2), '', str1, n)

Str2MinusStr1 ('aabbaa', 'a')  
# result 'abbaa'

Str2MinusStr1 ('aabbaa', 'ab')  
# result 'abaa'

Str2MinusStr1 ('aabbaa', 'a', 0)  
# result 'bb'

# n = number of occurences. 
# 0 means all, else means n of occurences. 
# str2 can be any regular expression. 

答案 5 :(得分:0)

使用正则表达式示例:

import re

text = "lamp, bag, mirror"
word = "bag"

pattern = re.compile("[^\w]+")
result = pattern.split(text)
result.remove(word)
print ", ".join(result)

答案 6 :(得分:0)

使用以下内容,您可以添加更多要删除的字词(["bag", "mirror", ...]

(s0, to_remove) = ("lamp, bag, mirror", ["bag"])
s0 = ", ".join([x for x in s0.split(", ") if x not in to_remove])
=> "lamp, mirror"