从。减去其他
一个字,我有两句话:从。减去其他
word1 = sunday word2 = sun
现在我想得到这样的结果:
result = word1-word2 = day
如何能怎么办呢? 我没有发现任何东西......
回答:
这取决于一般你想做什么。
1)您可以决定通过使用word1.replace(word2, "")
2删除每一次出现在word1
word2
)您还可能要更换只有一次出现,你可以通过调用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