在Python中,可以使用gzip库或zlib库来压缩字符串。以下是使用这两种库压缩字符串的示例:
使用gzip库压缩字符串
import gzipexample_string = "This is an example string that needs to be compressed."compressed_string = gzip.compress(example_string.encode('utf-8'))print(compressed_string)
使用zlib库压缩字符串
import zlibraw_data = "hello,world,ooooooooooooxxxxxxxxxxx"zb_data = zlib.compress(raw_data.encode('utf-8'))print(zb_data)
自定义压缩函数

如果你需要更复杂的压缩逻辑,比如只压缩连续重复的字符,你可以使用以下自定义函数:
def compress_string(s):if not s:return scompressed = []count = 1last_char = sfor i in range(1, len(s)):if s[i] == last_char:count += 1else:compressed.append(last_char + str(count))last_char = s[i]count = 1compressed.append(last_char + str(count))compressed_string = ''.join(compressed)如果压缩后的字符串长度不小于原始字符串长度,返回原始字符串return compressed_string if len(compressed_string) < len(s) else s示例input_str = "aabcccccaaa"compressed_str = compress_string(input_str)print(compressed_str) 输出: a2b1c5a3
以上代码展示了如何使用gzip和zlib库进行字符串压缩,并提供了一个自定义的压缩函数,该函数压缩连续重复的字符。如果压缩后的字符串长度不小于原始字符串长度,则返回原始字符串
