python 中的文本压缩
我有这个文字:
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,90 481,953,5779,661,14503 ,797,59,353,2521,4513,3010349,35239681,1087,14736206161,9901,269,67,137,71,6673,103681,9375829,54018521,230686501,2913460 1,988681,79,157,1601,2269,370248451,99194853094755497,83 ,9521,6709,173,263,1069,181,741469,4969,4531100550901,6643838879,761,769,193,599786069,197,401,743519377,919,519121,103,8 288823481,119218851371,1247833,11128427,827728777,331,1459000305513721,10745088481,677,229 ,1381,347,29717,709,159512939815855788121,
这是我的生成器程序生成的数字,现在问题有源代码限制,所以我不能在解决方案中使用上述文本所以我想压缩它并将其放入 python 中的数据结构中,以便我可以通过索引打印它们,例如:
F = [`compressed data`]
并且 F[0]
会给出 2 F[5]
会像这样给 7
...请建议我一种合适的压缩技术。
PS:我是Python的新手,所以请解释一下你的方法。
I have this text :
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,99194853094755497,83,9521,6709,173,263,1069,181,741469,4969,4531100550901,6643838879,761,769,193,599786069,197,401,743519377,919,519121,103,8288823481,119218851371,1247833,11128427,827728777,331,1459000305513721,10745088481,677,229,1381,347,29717,709,159512939815855788121,
This are numbers generated from my generator program,now the problem has a source code limit so I can't use the above texts in my solution so I want to compress this and put it into a data-structure in python so that I can print them by indexing like:
F = [`compressed data`]
and F[0]
would give 2 F[5]
would give 7
like this ... Please suggest me a suitable compression technique.
PS: I am a very newbie to python so please explain your method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当然您可以这样做:
请注意,这仅短了 139 个字符。
但它是有效的:
如果你的代码限制真的很短,也许你应该计算这些数据或其他东西?它是什么?
Sure you can do this:
Note that this is only 139 characters shorter.
But it works:
If your code limit really is so short, maybe you are supposed to calculate this data or something? What is it?
如果您确实需要压缩, zlib 可以完成工作。如果你不想压缩,那我的读心术恐怕就在衰退了。
zlib would get the job done, if you indeed want compression. If you don't want compression, then I'm afraid that my mind-reading skills are on the wane.
在 Python 2.4-2.7、pypy、jython 上:
On Python 2.4-2.7, pypy, jython: