问题是一种模糊......如果你的意思是数据压缩,那么你可以使用二进制变换。
In [1]: import codecs
In [2]: example = 'abcdefg'*100
In [3]: compressed = codecs.encode(example.encode(), 'zlib')
In [4]: compressed
Out[4]: b'x\x9cKLJNIMKO\x1c\xa5F\xa9\xa1F\x01\x00m\x8e\x11\x80'
In [5]: decompressed = codecs.decode(compressed, 'zlib')
In [6]: decompressed
Out[6]: b'abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg'
退房的docs编解码器,底部是二进制的转换提供了内置的编解码器。
如果你的意思是压缩来表达你想要减少代码行的欲望,那么当你的代码的意图是模糊的时,我会想象你想过滤掉重复的单词,同时可能保留单词的顺序......
没有顺序:
' '.join(set(sentence.split()))
随着顺序:
seen = set()
words = sentence.split()
new = []
for word in words:
if word not in seen:
seen.add(word)
new.append(word)
unique_ordered = ' '.join(new)
看看例子在[文件](https://docs.python.org/2/library/archiving.html) –
你的代码是合理的。你可以使用'dict'来加快查询速度,最后使用''.join()'。风格可以使用一些清理。但它不是一场灾难或任何事情。 – tdelaney