在python中存储100万个键值对的列表

前端之家收集整理的这篇文章主要介绍了在python中存储100万个键值对的列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@
我需要在 python中存储一百万个键值对的列表.键是字符串/整数,而值是浮点值列表.例如:
{"key":36520193,"value":[[36520193,16.946938],[26384600,14.44005],[27261307,12.467529],[16456022,11.316026],[26045102,8.891106],[148432817,8.043456],[36670593,7.111857],[43959215,7.0957513],[50403486,6.95],[18248919,6.8106747],[27563337,6.629243],[18913178,6.573106],[42229958,5.3193846],[17075840,5.266625],[17466726,5.2223654],[47792759,4.9141016],[83647115,4.6122775],[56806472,4.568034],[16752451,4.39949],[69586805,4.3642135],[23207742,3.9822476],[33517555,3.95],[30016733,3.8994896],[38392637,3.8642135],[16165792,3.6820507],[14895431,3.5713203],[48865906,3.45],[20878230,[17651847,3.3642135],[24484188,3.1820507],[74869104,[15176334,3.1571069],[50255841,[103712319,[20706319,2.9571068],[33542647,2.95],[17636133,[66690914,[19812372,[21178962,[37705610,2.8642135],[20812260,[25887809,[18815472,[17405810,[46598192,[20592734,2.6642137],[44971871,2.5],[27610701,2.45],[92788698,[52164826,[17425930,2.2],[60194002,2.1642137],[122136476,2.0660255],[205325522,2.0],[117521212,1.9820508],[33953887,[22704346,1.9571068],[26176058,1.9071068],[39512661,[43141485,1.8660254],[16401281,1.7],[31495921,[14599628,[74596964,1.5],[55821372,[109073560,1.4142135],[91897348,[25756071,1.25],[25683960,[17303288,[42065448,[72148532,1.2],[19192100,[85941613,[77325396,[18266218,[114005403,[16346823,[43441850,[60660643,[41463847,[33804454,[20757729,[18271440,[51507708,[104856807,[24485743,[16075381,[68991517,[96193545,[63675003,[70735999,[25708416,[80593161,[42982108,[120368215,[24379982,[14235673,[20172395,[161441314,[37996201,[35638883,[46164502,[74047763,[19681494,[95938476,[20443787,[87258609,[34784832,[30346151,[40885516,[197129344,[14266331,[15112466,[26867986,[82726479,[23825810,[14662121,[32707312,[17477917,[123462351,[5745462,[16544178,[23284384,[45526985,[23109303,[26046257,[53654203,[133026438,[25139051,[65077694,[17469289,[15130494,[148525895,[15176360,[44853617,[9115332,[16878570,[132421452,[6273762,[124360757,[21643452,[9890492,[16305494,[18484474,[22643607,[60753586,[9200012,[30042254,[8374622,[15894834,[18438022,[78038442,[22097386,[21018755,[20845703,[164462136,[19649167,[24746288,[27690898,[42822760,[160935289,[178814456,[53574205,[41473578,[82176632,[82918057,[102257360,[17504315,[18363508,[50735431,[80647070,[40879040,[17790497,[191364080,[14429823,[22078893,[121338184,[113341318,[48900101,[38547066,[20484157,[16228699,[21179292,[15317594,[55777010,[15318882,[182109160,[45238537,[19701986,[32484918,[18244358,[18479513,[19081775,[21117305,[19325724,[136844568,[32398651,[20482993,[14063937,[91324381,[20528275,[14803917,[16208245,[17419051,[31187903,[54043787,[167737676,[24431712,[24707301,[24420092,[15469536,[26322385,[77330594,[82925252,[28185335,1.0],[24510384,[24407244,[41229669,[16305330,[26246555,[28183026,[49880016,[104621640,[36880083,[19705747,[22830942,[21440766,[54639609,[49077908,[29588859,[23523447,[20803216,[20221159,[1416611,[3744541,[21271656,[68956490,[96851347,[39479083,[27778893,[18785448,[39010580,[65796371,[124631720,[27039286,[18208354,[51080209,[37388787,[18462037,[31335156,[21346320,[23911410,[73134924,[807095,[44465330,[16732482,[37344334,[734753,[23006794,[33549858,[102693093,[51219631,[20695699,[4081171,[27268078,[80116664,[32959253,[85772748,[27109019,[28706024,[59701568,[23559586,[15693493,[56908710,[6541402,[15855538,[126169000,[24044209,[80700514,[21500333,[18431316,[44496963,[68475722,[15202472,[19329393,[39706174,[22464533,[81945172,[22101236,[19140282,[31206614,[15429857,[27711339,[14939981,[62591681,[52551600,[40359919,[27828234,[21414413,[156132825,[21586867,[23456995,[25434201,[30107143,[34441838,[37908934,[47010618,[139903189,[17833574,[758608,[15823236,[37006875,[10302152,[40416155,[21813730,[18785600,[30715906,[428333,[22059385,[15155074,[11061902,[1177521,[20449160,[197117628,[42423692,[24963961,[19637934,[35960001,[43269420,[43283406,[20269113,[59409413,[25548759,[23779324,[21449197,[14327149,[15429316,[16159485,[18785846,[67651295,[28389815,[19780922,[23841181,[78391198,[60765383,[37689397,[6447142,[31332871,[30364057,[14120151,[16303064,[23023236,[103610974,[108382988,[19791811,[17121755,[46346811,[45618045,[25587721,[25362775,[20710218,[20223138,[21035409,[101894425,[38314814,[24582667,[21181713,[15901190,[18197299,[38802447,[19668592,[14515734,[16870853,[16488614,[95955871,[14780915,[21188490,[24243022,[27150723,[29425265,[36370563,[36528126,[43789332,[82773533,[19726043,[20888549,[30271564,[14874125,[121436823,[56405314,[46954727,[25675498,[12803352,[23888081,[18498684,[38536306,[22851295,[20140595,[22311506,[31121729,[53717630,[100101137,[24753205,[24523660,[19544133,[20823773,[22677790,[15227791,[57525419,[28562317,[9629222,[24047612,[30508215,[59084417,[71088774,[142157505,[15284851,[17164788,[17885166,[18420140,[19695929,[20572844,[23479429,[26642006,[43469093,[50835878,[172049453,[20604508,[21681591,[20052907,[21271938,[17842661,[6365162,[18130749,[19249062,[24193336,[25913173,[28647246,[26072121,[14522546,[16409683,[18785475,[28969818,[52757166,[7120172,[112237392,[116779546,[57107167,[26347170,[26565946,[44409004,[21105244,[14230524,[44711134,[101753075,[783214,[22885110,[39367703,[23042739,[682903,[38082423,[16194263,[2425151,[52544275,[21380763,[18948541,[34954261,[34848331,[29245563,[19499974,[16089776,[77040291,[18197476,[1704551,[15002838,[17428652,[20702626,[29049111,[34004383,[34900333,[48156959,[50906836,[15742480,[41073372,[37338814,[1344951,[8320242,[14719153,[20822636,[168841922,[19877186,[14681605,[15033883,[23121582,[23670204,[41466869,[18753325,[21358050,[78132538,[132386271,[86194654,[17225211,[107179714,[18785430,[19408059,[19671129,[24347716,[24444592,[25873045,[7871252,[14138300,[16873300,[14546496,[165964253,[15529287,[95956928,[19404587,[21506437,[22832029,[19542638,[30827536,[5748622,[22757990,[41259253,[23738945,[19030602,[21410102,[28206360,[136411179,[17499805,[26107245,[127311408,[77023233,[20448733,[20683840,[22482597,[15485441,[28220280,[55351351,[70942325,[9763482,[15732001,[27750488,[18286352,[122216533,[19562228,[5380672,[22293700,[59974874,[44455025,[90420314,[22657153,[16660662,[14583400,[16689545,[94242867,[44527648,[40366319,[33616007,[23438958,[15317676,[14075928,[1978331,[33347901,[16570090,[32347966,[26671992,[101907019,[24986014,[23235056,[40001164,[21891032,[18139329,[9648652,[16105942,[3004231,[20762929,[28061932,[39513172,[15012305,[18349404,[22196210,[110509537,[20318494,[21816984,[22456686,[62290422,[93472506,0.8660254],[52305889,0.70710677],[67337055,[122768292,0.5],[35060854,[43289205,[87271142,[28096898,[79297090,[24016107,[48736472,[109982897,[98367357,[21816847,[73129588,[23807734,[76724998,[63153228,[21628966,[14465428,[42609851,[30213342,[17021966,[96616361,[97546740,[67613930,[21234391,[87245558,[36841912,0.5]]}

我将对此数据结构执行查找.实现我的目的最合适的数据结构是什么?我听过有关Redis的建议.是否值得研究而不是传统的python数据结构?如果没有,请建议其他机制.

编辑

‘value’字段是列表列表.大多数情况下,列表最多可包含1000个列表,其中包含size-2列表.

解决方法

如果……,Redis将是合适的

>您希望在应用程序的多个进程或实例之间共享队列.
>您希望数据具有持久性,因此如果您的应用程序出现故障,它可以从中断处继续.
>您需要一个超快速,简单的解决方案.
>内存使用是一个问题.

我不确定最后一个,但我猜测在Python中使用dict或其他一些集合类型可能比在单个Redis散列中存储所有键/值更高的内存占用.

更新

我通过在内存和redis中存储示例数组100万次来测试内存使用情况.将所有值存储在Redis哈希中需要序列化数组.我选择了json序列化,但这可能很容易成为一种更有效的二进制格式,redis支持.

使用类似于所示的整数键索引的Ruby Hash中提供的大约100万个数组(应该与Python的dict相当).内存使用量增加了~350mb(类似于@gnibbler的python结果).
> 100万个数组副本,序列化为使用相同数字索引的redis哈希中的JSON字符串.内存使用量增加约250mb.

两者都非常快,当我测量10,000个随机查找与针对本机集合的随机查找时,Redis略快.我知道它不是Python,但这应该至少是说明性的.

另外,为了回答OP的其他问题,Redis可以轻松处理非常大的字符串值.它的最大字符串大小目前是512mb

猜你在找的Python相关文章