gpt4 book ai didi

修改字符串的Python函数

转载 作者:行者123 更新时间:2023-11-28 20:02:18 38 4
gpt4 key购买 nike

有一次我被要求创建一个给定字符串的函数,从字符串中删除几个字符。

是否可以在 Python 中执行此操作?

这可以用于列表,例如:

def poplist(l):
l.pop()

l1 = ['a', 'b', 'c', 'd']

poplist(l1)
print l1
>>> ['a', 'b', 'c']

我想要的是为字符串做这个函数。我能想到的唯一方法是将字符串转换为列表,删除字符,然后将其连接回字符串。但那时我将不得不返回结果。例如:

def popstring(s):
copys = list(s)
copys.pop()
s = ''.join(copys)

s1 = 'abcd'

popstring(s1)

print s1
>>> 'abcd'

我明白为什么这个功能不起作用。问题更多,是否可以在 Python 中执行此操作?如果是,我可以不复制字符串吗?

最佳答案

字符串是不可变的,这意味着您不能更改str 对象。您当然可以构造一个新字符串,它是对旧字符串的一些修改。但是您不能因此更改代码中的 s 对象。

解决方法可能是使用容器:

class Container:

def __init__(self,data):
self.data = data

然后 popstring 被赋予一个容器,它检查容器,然后将其他东西放入其中:

def popstring(container):
container.data = container.data[:-1]

s1 = Container('abcd')
popstring(s1)

但同样:您没有更改字符串对象本身,您只是将一个新字符串放入容器中。

您无法执行 call by reference在 Python 中,所以你不能调用函数:

foo(x)

然后改变变量x:复制x的引用,所以你不能改变变量x本身。

关于修改字符串的Python函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850850/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com