我有两个字:
word1 = sunday
word2 = sun
现在我想得到这个结果:
result = word1-word2 = day
我怎么能这样做? 我没找到任何东西......
答案 0 :(得分:3)
这取决于你想要做什么。
1)您可以决定使用word2
word1
中word1.replace(word2, "")
的{strong>每次出现
2)您可能还想替换仅出现第一次出现,您可以通过调用word1.replace(word2, "", 1)
来实现。但是,这会删除word2
word1
中word2
出现的位置。
3)另外,如果您要执行的操作仅在word1
开始时删除def sub(word1, word2):
if word1[:len(word2)] == word2:
return word1[len(word2):]
else:
return word1
,我会选择以下内容:
word2
请注意,这假设word1
较短,您可能需要添加一些检查。
4)最后,您可能希望在word2
和sunday - sunflower = day
之间仅减去匹配前缀,例如def sub(word1, word2):
for index, letter in enumerate(word1):
if letter != word2[index]:
break
return word1[index:]
。你可以这样做:
word2
请注意,这再次假设.bashrc
更短。
一旦确定了减法的规格,您就可以选择所需的解决方案。
答案 1 :(得分:1)
您可以使用replace()
功能
word1 = "sunday"
word2 = "sun"
word3 = word1.replace(word2, "")
print(word3)
答案 2 :(得分:0)
您可以使用字符串slicing
。我们想采取"切片"从这个词的结尾开始减去。由于index
方法给出了字符串开头的索引,我们需要在其上添加要减去的字符串的长度,以获得切片应该从哪里开始的索引。
因此,使用该逻辑,这是一个通用函数:
def sub(s1, s2):
return s1[s1.index(s2)+len(s2):]
和测试:
>>> sub("sunday", "sun")
'day'
答案 3 :(得分:0)
对于true"减法",您可能想要创建自己的字符串对象:
import re
class String:
def __init__(self, val):
self.s = str(val)
def __sub__(self, value):
return re.sub(value.s, '', self.s)
s = String('sunday')
s1 = String('sun')
print(s-s1)
输出:
day
答案 4 :(得分:-1)
不确定您之后究竟是什么,或者其中一种方法是否可行,但您可以这样做:
>>> word1 = 'sunday'
>>> word1.replace("sun", "")
'day'
# or
>>> word1[3:]
'day'
但不,你不能对这样的字符串进行通用减法。
答案 5 :(得分:-1)
Python内置的字符串类不支持减法。相反,你可以通过使用字符串b作为参数来分割字符串a来破解你自己的字符串减法函数。
Zaka Elab已经优雅地回答了这个问题。所以,我将分享他的解决方案:
def subtract(a, b):
return "".join(a.rsplit(b))
subtract("sunday", "sun")