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)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537561.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jupyter notebook常用快捷鍵

Jupyter Notebook 有兩種鍵盤輸入模式。編輯模式,允許你往單元中鍵入代碼或文本;這時的單元框線是綠色的。命令模式,鍵盤輸入運行程序命令;這時的單元框線是灰色。 命令模式 (按鍵 Esc 開啟) Enter : 轉入編輯模式Shift-Enter : …

Eclipse安裝試用Hanlp

【1】確定正確安裝配置Java和Eclipse 【2】下載HanLp的各種東西 hanlp.linrunsoft.com/services.ht… 下載這四個文件到本地,我是放在桌面的一個文件夾了。【3】 把jar包導入到Eclipse 在Eclipse先新建一個項目File——New——Java Project--[名字:Hanlp…

升級pip最新版本

python很多庫對pip版本有要求,升級命令為: python -m pip install --upgrade pip windows在cmd下,輸入以上命令

bat 存儲過程返回值_使用Mybatis過程中遇到的坑

常規SSM框架開發中,mybatis遇到的坑是最多的,把以下幾點坑記錄下來防止以后再遇到同樣的情況。1、mybatis 若果在mapper中返回值沒有配置resultMap而是使用resultType直接返回的話,那么當心默認配置中的駝峰匹配規則,參考以下配置…

【洛谷 P2513】 [HAOI2009]逆序對數列(DP)

題目鏈接 這種求方案數的題一般都是\(dp\)吧。 注意到范圍里\(k\)和\(n\)的范圍一樣大,\(k\)是完全可以更大的,到\(n\)的平方級別,所以這暗示了我們要把\(k\)寫到狀態里。\(f[i][j]\)表示前\(1\)~\(i\)的排列逆序對數為\(j\)的方案數。 現在考…

think python下載 中文版開源!這或許是最經典的編程教材

《Think Python》是很多Python初學者的不二入門教材,受到廣泛好評。該書原作者是美國Olin工程學院的教授Allen B. Downey,目前該書的原版和中文版本都已免費開源。 中文版本譯者是一名自學Python的編程愛好者。選擇翻譯《Think Python》,一是…

datatable的數據進行組內排序_排序算法學習分享(四)希爾排序

排序,也稱為排序算法,可以說是我們學習算法的過程中遇到的第一個門檻,也是實際應用中使用得較為頻繁的算法,我將自己對所學的排序算法進行一個歸納總結與分享,如有錯誤,歡迎指正!排序算法學習分…

jupyter notebook 安裝代碼提示功能

效果 安裝成功后,輸入部分代碼,按 tab 鍵,會提示代碼 安裝步驟 1.安裝nbextensions 從國內的pip鏡像下載快 pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com jupyter_contrib_nbextensions jupyter contr…

轉:EL表達式的11個內置對象

原文地址&#xff1a;https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP內置的表達式語言 JSP2.0開始&#xff0c;不讓再使用Java腳本&#xff0c;而是使用EL表達式和動態標簽來代替Java腳本 ############EL替代的是<%... %>&#xff0c;也就是說EL只…

python需要配置環境變量嗎_python為什么會環境變量設置不成功

學習python編程&#xff0c;首先要配置好環境變量。本文主要講解python的環境變量配置&#xff0c;在不同版本下如何安裝 Windows 打開Python官方下載網站 https://www.python.org/downloads/release/python-370/ x86:表示是32位電腦 x86-64:表示是64位電腦 目前Python版本分為…

一維數組、二維數組、三維數組、四維數組、多維數組的理解

以圖書館來舉例 一維數組是一條線 二維數組是一頁紙 三維數組是一本書 四維數組是書架 五維數組是圖書室2201&#xff08;好幾個書架&#xff09; 六維數組是圖書館某一層&#xff0c;2樓/3樓&#xff0c;好幾個圖書室 七維數組是整個圖書館 第N維數組是宇宙..................…

線性篩

我就是我&#xff0c;一輩子都學不會線性篩的菜雞 一篇非常好的博客轉載于:https://www.cnblogs.com/yzxverygood/p/9907281.html

在資源使用狀況視圖中查看資源的負荷情況

只有工時類資源才會出現過度分配&#xff0c;因為工時類資源通常指組織內部的人力資源或者機械設備等&#xff0c;這些資源通常都有數量上的瓶頸&#xff0c;也只有工時類資源才會在【資源工作表】中設置它的最大單位和資源可用性&#xff0c;這就限制了它在不同時間段內的可用…

python常用單詞自由且開放_python常用英語單詞詞匯 unit7

1. Darcula IntelliJ IDEA自帶的黑色主題名稱&#xff0c;Android Studio是基于IntelliJ IDEA的。 2. Appearance /prns/ n. 外觀&#xff1b; 3. Custom /kstm/ n. 習慣&#xff1b; 4. UI abbr. 用戶界面&#xff08;user interface&#xff09; 5.Terminate /tmnet/ 終止、結…

2018.10.29-2018.11.4

簡述osi七層模型和TCP/IP五層模型應用層OSI 參考模型中最靠近用戶的一層&#xff0c;是為計算用戶提供應用接口&#xff0c;也為用戶直接提供網絡服務。常見的應用層網絡服務協議有&#xff1a;HTTP,HTTPS,FTP,POP3,SMTP等表示層表示提供各種用于應用層數據編碼和轉換功能&…

CSV文件轉Excel后數字自動轉換成科學計數法的解決方法

CSV文件用Excel打開后&#xff0c;長度超過11位的數字自動轉換成科學計數法顯示&#xff0c;末尾數字變成“0000”&#xff0c;如何解決這一問題&#xff1f; 以“老勞模系統數據.CSV”為例&#xff0c;身份證碼是科學計數法了 第一步&#xff1a;新建excel&#xff0c;用 off…

python 小說 云_python小說網站

廣告關閉 騰訊云11.11云上盛惠 &#xff0c;精選熱門產品助力上云&#xff0c;云服務器首年88元起&#xff0c;買的越多返的越多&#xff0c;最高返5000元&#xff01; python爬蟲之小說網站--下載小說(正則表達式)思路:1. 找到要下載的小說首頁,打開網頁源代碼進行分析(例:htt…

數據庫導出到excel解決科學計數法問題

用Navicat等工具導出數據到excel的時候&#xff0c;身份證等超過11位的數字會自動轉換成科學計數法&#xff0c;末尾數字變成“0000”。如何解決&#xff1f; 解決方式&#xff1a;給超過11位的數字末尾添加 \t 查詢的時候&#xff0c;給相關字段添加 \t SELECT name,CONCAT…

6.6(java學習筆記)文件分割(IO綜合例子)

基本思路&#xff1a; 文件分割&#xff1a;將一個文件分割成若干個獨立的文件。 設置分割后小文件文件的字節數&#xff0c;然后讀取被分割文件&#xff0c; 將對應的字節數寫入分割后的小文件中。 使用seek定位下一次讀取位置。 文件合并&#xff1a;將分割后的若干的文件合并…

小米MIUI關閉內容中心通知

被MIUI的內容中心打擾了許久&#xff0c;終于找到徹底關閉它的方式。 這個內容中心&#xff0c;在應用列表里找不到卸載&#xff0c;在通知管理里也找不到&#xff0c;小米把它藏得深。 關閉內容中心通知 第一步&#xff0c;先進入內容中心&#xff0c;然后切換到后臺&#…