从。减去其他

一个字,我有两句话:从。减去其他

word1 = sunday 

word2 = sun

现在我想得到这样的结果:

result = word1-word2 = day 

如何能怎么办呢? 我没有发现任何东西......

回答:

这取决于一般你想做什么。

1)您可以决定通过使用word1.replace(word2, "")

2删除每一次出现在word1word2)您还可能要更换只有一次出现,你可以通过调用word1.replace(word2, "", 1)。虽然,这将删除word2的发生,无论它在word1

3)此外,如果你想要做的是去除word2只有当它是在开始的word1,我会去这样的事情:

def sub(word1, word2): 

if word1[:len(word2)] == word2:

return word1[len(word2):]

else:

return word1

注意,这个假设word2较短,你可能想添加一些检查。

4)最后,你可能想只。减去和word1之间word2的匹配前缀,通过实例sunday - sunflower = day。你可以这样做:

def sub(word1, word2): 

for index, letter in enumerate(word1):

if letter != word2[index]:

break

return word1[index:]

请注意,这再次假设word2更短。

一旦你决定了你的减法规格是什么,你可以选择你想要的解决方案。

回答:

可以使用replace()功能

word1 = "sunday" 

word2 = "sun"

word3 = word1.replace(word2, "")

print(word3)

回答:

您可以使用字符串slicing。我们希望从单词的末尾开始减去“切片”。由于index方法给出了字符串开始的索引,我们需要在其上添加要减去的字符串的长度,以获得切片应该从哪里来的索引。

所以,使用逻辑,这里是一个通用的功能:

def sub(s1, s2): 

return s1[s1.index(s2)+len(s2):]

和测试:

>>> sub("sunday", "sun") 

'day'

回答:

不知道你到底是什么后,还是这些方法之一可以工作,但你可以这样做:

>>> word1 = 'sunday' 

>>> word1.replace("sun", "")

'day'

# or

>>> word1[3:]

'day'

但是不,你不能对这样的字符串做通用的减法。

回答:

Python内置的字符串类不支持减法。相反,你可以通过使用字符串b作为参数分割字符串a来破解自己的字符串减法函数。

此问题已由Zaka Elab优雅地回答。所以,我只是分享他的解决方案:

def subtract(a, b):        

return "".join(a.rsplit(b))

subtract("sunday", "sun")

回答:

对于真正的 “减法”,您可能希望创建自己的字符串对象:

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 

以上是 从。减去其他 的全部内容, 来源链接: utcz.com/qa/257514.html

回到顶部