Eci*_*ana 34 python string mutable
请问,你知道一个提供可变字符串的Python库吗?谷歌的结果令人惊讶地回归.我找到的唯一可用的库是http://code.google.com/p/gapbuffer/,它在C中,但我更喜欢用纯Python编写.
编辑:感谢您的回复,但我正在追求一个高效的库.也就是说,''.join(list)可能有用,但我希望有更优化的东西.此外,它必须支持常规字符串常用的东西,如正则表达式和unicode.
Joh*_*udd 19
这将允许您有效地更改字符串中的字符.虽然你不能改变字符串长度.
>>> import ctypes
>>> a = 'abcdefghijklmn'
>>> mutable = ctypes.create_string_buffer(a)
>>> mutable[5:10] = ''.join( reversed(list(mutable[5:10].upper())) )
>>> a = mutable.value
>>> print `a, type(a)`
('abcdeJIHGFklmn', <type 'str'>)
Run Code Online (Sandbox Code Playgroud)
Joe*_*ett 12
class MutableString(object):
def __init__(self, data):
self.data = list(data)
def __repr__(self):
return "".join(self.data)
def __setitem__(self, index, value):
self.data[index] = value
def __getitem__(self, index):
if type(index) == slice:
return "".join(self.data[index])
return self.data[index]
def __delitem__(self, index):
del self.data[index]
def __add__(self, other):
self.data.extend(list(other))
def __len__(self):
return len(self.data)
Run Code Online (Sandbox Code Playgroud)
... 等等等等.
您还可以继承StringIO,buffer或bytearray.