<small id='XSrTKA'></small> <noframes id='hNYTxdVGk'>

  • <tfoot id='s17LSQp'></tfoot>

      <legend id='rB1bWc6n'><style id='QqDv'><dir id='Kbkm9'><q id='6Ck7I'></q></dir></style></legend>
      <i id='wh3H7K'><tr id='UxmOi7'><dt id='ge9q30'><q id='gkvSWB'><span id='RBeIfquMS'><b id='4rRQgTO'><form id='t7Go0pnJV'><ins id='Qz3WGBOneA'></ins><ul id='VWiULakX'></ul><sub id='RhnJ'></sub></form><legend id='X7ehq1gVuL'></legend><bdo id='RACXyuT7'><pre id='4VnACkL'><center id='2qYXQtpI'></center></pre></bdo></b><th id='TmhMw'></th></span></q></dt></tr></i><div id='XqfREMl'><tfoot id='nM9o'></tfoot><dl id='8CVxzT15F'><fieldset id='0i59HkgL'></fieldset></dl></div>

          <bdo id='Ctu7hl'></bdo><ul id='cMJWZ'></ul>

          1. <li id='zKmDW3LI'></li>
            登陆

            「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?

            admin 2019-11-06 290人围观 ,发现0个评论

            思路:生成1百万个随机字符串,比较花费时刻。

            生成随机字符串的代码:

            import random 
            import time
            big = [chr(i) for i in range(65,91)]
            small = [chr(i) for i i「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?n range(97,123)]
            def randNStr(n):
            ...: result = []
            ...: for i in range(n「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?):
            ...: strlen = random.randint(3,9)
            ...: result.append(''.join(random.sample(small+big,strlen)))
            ...: return result

            combi「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?ne+s 再赋值给combine

            def immfn(n): 
            ...: combine=''
            ...: res = randNStr(n)
            ...: beg = time.time()
            ...: print('beg time %s'%str(beg))
            ...: for s in res:
            ...: combine = co「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?mbine + s
            ...: #print(combine)
            ...: end = time.time()
            ...: print('end time %s'%str(end))
            ...: print('elispe time: %s'%str(end-beg))

            为了防止重复生成新的目标,运用以下办法:

            def mutfn(n): 
            ...: combine=''
            ...: res = randNStr(n)
            ...: beg = time.time()
            ...: print('beg time %s'%str(beg))
            ...: combine = ''.join(res)
            ...: #print('print result:%s'%combine)
            ...: end = time.time()
            ...: print('end time %s'%str(end))
            ...: print('elispe time: %s'%str(end-beg))

            此处运用 s三点水加元tr.join(iter),承受可迭代目标,并只回来一个新目标。比较以上两种办法的核算时刻,分别从10万,步长10万,停止到100万,比较剖析兼并字符串的时刻。

            以看到可变目标只生成一个新目标的办法,比不可变目标在数据量越大情况下,优势更显着,出现扩张的喇叭口,当数据为90万时,节省时刻本钱高达「每天3分钟学Python」两种办法生成1百万个字符串,时间差百倍?:(0.19-0.025)/0.025 = 6.6 倍。当数据量增长到1千万或更大时,优势更显着。

            传闻百度开了一所大学:

            https://www.toutiao.com/i6736916617436856839/

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP