以下失败,因为字符串是不可变的。我正在尝试删除重复项。有一个更好的方法吗?
$start_date = "11/22/2019";
$start_date = strtotime($start_date);
$end_date = "11/29/2020";
$end_date = strtotime($end_date);
答案 0 :(得分:1)
不,不是在Python中。每次您执行“修改”字符串的操作时,实际上就是在创建一个新的,不变的字符串。
根据“就地”要求的原因或意图,您可以将字符串转换为另一种类型(字符列表,StringIO等),对其进行修改,然后将其转换回字符串
老实说,这听起来像一个面试问题。由于这种限制,Python不适用于答案。面试官可能会期望您使用C或C ++。
答案 1 :(得分:0)
没有任何事情,您可以从适当的字符串中删除重复项。这是因为字符串在Python中是不可变的。为此,您必须执行以下操作:
答案 2 :(得分:0)
如果您要删除单词中每个字母的第一个出现的部分,请删除
例如千禧年-> milenu
您可以执行以下操作:
def remove_duplicate_letters(word):
result = ""
for c in word:
if c not in result:
result += c
return result
您正确地注意到这不是“就位”。变量“ word”指向的字符串对象不变。由于字符串对象在Python中是不可变的,因此无法更改。而是创建一个新的字符串对象。实际上很多。一个为空字符串。然后再加上第一个字母“ m”。再次添加“ i”等等。
注意。同样,字符串是不可变的。看起来我们更改了“结果”,但是内存中正在发生的事情是,我们在每个循环中创建了一个新的字符串对象,并更改了变量“结果”指向的位置。