2017-05-08 6 views
0

このコードで使用されているテキストを圧縮する方法はありますか。私は助けに感謝します。
Heya、このコードで使用されているテキストを圧縮する方法はありますか。私は助けに感謝します。テキストファイルを圧縮する方法

+0

見 –

+0

あなたのコードが合理的です。 'dict'を使って単語検索を高速化し、最後に.join()を使用することができます。そしてこのスタイルではクリーンアップを使うことができます。しかし、それは災害や何かではありません。 – tdelaney

答えて

1

質問は漠然としています...データ圧縮を意味する場合は、バイナリ変換を使用できます。

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) 
0

あなたがCのラインを減らすことができれば、あなたが求めているように思えますあなたが持っているオード。ここに私の試みは次のとおりです。[ドキュメント](https://docs.python.org/2/library/archiving.html)の例で

with open("Test.txt", "r") as file: 
    Sentence = file.read().split(" ") 
ListSentence, uniquewords = [], [] 
print(Sentence) 
for x in s: 
    if x not in uniquewords: 
     uniquewords.append(x) 
    ListSentence.append(uniquewords.index(x)) # you do this every loop anyway 
print(ListSentence) 

recreated = "" 
for position in ListSentence: 
    recreated += uniquewords[position] + " " 
print(uniquewords) 
print(recreated) 
関連する問題