日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python运算符_Python运算符总结

發布時間:2025/3/8 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python运算符_Python运算符总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建議:字符串拼接操作盡量多用join,而減少用”+“

join操作時會先計算字符操作所用到的空間總和大小,然后申請內存。然后進行字符串連接操作。所以join的時間復雜的近似O(n)。

+操作符連接操作符時,由于字符串是不可變對象,所以多個字符串拼接操作時從前向后的依此計算,用前一次的計算結果再和下一個字符串拼接。所以每次操作都需要申請一塊新的內存。舉例:S1+S2+S3+…Sn,實際過程是:1、先申請一塊內存;2、將S1、S2復制到這塊內存中(這樣這塊內存就是S1+S2);3、繼續第一步申請內存;4、繼續把第二步的內存內容和S3復制到第三步申請的內存。然后重復第一步到第二步至計算到Sn。所以操作符”+“的時間復雜的近似O(n^2)

對于不同個數字符串拼接操作時join和+所用時間對比(python2.7環境運行結果):

鏈接字符串數量 join操作消耗時間 +操作消耗時間

3 0.011083841323852539 0.02231597900390625

10 0.014094829559326172 0.05936312675476074

100 0.1445930004119873 0.6129770278930664

1000 1.340691089630127 6.07816481590271

10000 13.942554950714111 61.60126209259033

參考計算運算上面時間的代碼:#!/usr/bin/env python

# -*- coding: utf-8 -*-

import timeit

strlist = ["it is a value string will not keep in memorty" for n in range(100000)]

def join_test():

return ''.join(strlist)

def plus_test():

result = ''

for i,v in enumerate(strlist):

result = result + v

return result

if __name__ == '__main__':

x = [3,10,100,1000,10000]

jointd = {3:0,10:0,100:0,1000:0,10000:0}

plustd = {3:0,10:0,100:0,1000:0,10000:0}

for i in x:

jointimer = timeit.Timer("join_test()","from __main__ import join_test")

jointd[i] = jointimer.timeit(number=i)

plustimer = timeit.Timer("plus_test()","from __main__ import plus_test")

plustd[i] = plustimer.timeit(number=i)

print ('join use time:\n',jointd)

print ('plus use time:\n', plustd)

總結

以上是生活随笔為你收集整理的python运算符_Python运算符总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。