Сжатие ТЕКСТА в Python
-
27-10-2019 - |
Вопрос
У меня есть этот текст:
2,3,5,1,13,7,17,11,89,1,233,29,61,47,1597,19,37,41,421,199,28657,23,3001,521,53,281,514229,31,557 , 2207,19801,3571,141961,107,73,9349,135721,2161,2789,211,433494437,43,109441,139,2971215073,1103,97,101,6376021,90481,953,5779,661,14503,797 , 59,353,2521,4513,3010349,35239681,1087,14736206161,9901,269,67,137,71,6673,103681,9375829,54018521,230686501,29134601,988681,79,157,1601,2269,370248451,994719485309 : , 347,29717,709,159512939815855788121,
Это числа, сгенерированные моей программой-генератором, теперь у проблемы есть ограничение на исходный код, поэтому я не могу использовать приведенные выше тексты в своем решении , поэтому я хочу сжать это и поместить в структура данных в Python, чтобы я мог распечатать их, индексируя, например:
родовое слово и F[0]
дали бы 2 F[5]
, дали бы 7
вот так ... Пожалуйста, предложите мне подходящую технику сжатия.
PS: Я новичок в Python, поэтому, пожалуйста, объясните свой метод.
Решение
Конечно, вы можете это сделать:
родовое словоОбратите внимание, что это всего на 139 символов короче. Но это работает:
родовое словоЕсли у вас действительно так мало кода, может быть, вы должны вычислить эти данные или что-то в этом роде?Что это такое?
Другие советы
zlib выполнит свою работу, если вам действительно нужно сжатие.Если вы не хотите сжатия, боюсь, что мои навыки чтения мыслей идут на убыль.
В Python 2.4–2.7, pypy, jython:
родовое слово