問題是一種模糊......如果你的意思是數據壓縮,那麼你可以使用二進制變換。
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