从字符串文本中减去字符串文本

时间:2014-02-28 18:08:24

标签: python arcpy

好的回到另一个。我有:

var1 = "tuna"
var2 = "tunasandwich"

我想:

var3 = "sandwich"

我知道我的问题非常简单,但我要求他们简单并寻找简单的答案,因为我对编程很新。这里提出的很多问题都在我的头上,所以如果像我这样的初学者搜索,他们会找到我简单的初学者问题和答案。

感谢

2 个答案:

答案 0 :(得分:3)

使用替换功能。所以说:

var1 = "tuna"
var2 = "tunasandwich"
var3 = var2.replace(var1, "")

var3的值将为sandwich

我们正在做的是将所有出现的var1替换为var2中出现的空字符串"",并将其设置为等于var3

这将替换字符串中的所有实例。

答案 1 :(得分:1)

这对初学者来说是一个很棒的话题。你的问题留下了很好的解释空间,这使得提供激光精确支持变得有点困难,但我们都不得不从头开始作为新手,所以这是一个散射的答案。

您可以通过确定所需字符串是否出现在开头来查明您的字符串是否适合此处理。

>>> "tunasandwich".startswith("tuna")
True

如果是这种情况,那么您知道要删除前四个字符,或者换句话说,您希望字符串从第四个字符开始(请记住,任何序列的元素都从零开始计算,所以数字四是第五个元素)。你可以用“开放式切片”来做到这一点:

>>> "tunasandwich"[4:]
'sandwich'

[4:]表示从字符编号4到字符串末尾创建另一个字符串(因此您甚至不需要知道字符串的长度)。更一般地说,编写一段适用于任何两个字符串的代码会很有用。我们假设写了:

>>> target = "tuna"
>>> subject = "tunasandwich"
>>> # This code should work for any two strings (perhaps...)
...
>>> if subject.startswith(target):
...     subject = subject[len(target):]
...
>>> subject
'sandwich'

使用targetsubject的不同值尝试相同的操作。您应该发现只有当主题字符串实际上以目标字符串开头时,主题字符串才会替换为目标后面的子字符串。我没有使用像4这样的数字作为子串的开头,而是使用了目标的计算长度,因此代码适应任何目标字符串。检查目标是否发生在受试者的开始时,我们会停止切断不符合治疗条件的字符串。

当然最终你会厌倦所有想要了解功能的打字,但是可以等待另一天。