中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

響應(yīng)式網(wǎng)站開發(fā)asp頁(yè)面優(yōu)化的方法有哪些

響應(yīng)式網(wǎng)站開發(fā)asp,頁(yè)面優(yōu)化的方法有哪些,移動(dòng)網(wǎng)站二級(jí)域名m開頭怎么做,中企動(dòng)力科技股份有限公司網(wǎng)站上一篇為啥我的Python這么慢, 字符串的加和和join被陳群主分享到biopython-生信QQ群時(shí),樂(lè)平指出字典的寫法存在問(wèn)題,并給了一篇知乎的鏈接https://zhuanlan.zhihu.com/p/28738634指導(dǎo)如何高效字典操作。 根據(jù)那篇文章改了兩處寫法,如下 (存儲(chǔ)…

上一篇為啥我的Python這么慢, 字符串的加和和join被陳群主分享到biopython-生信QQ群時(shí),樂(lè)平指出字典的寫法存在問(wèn)題,并給了一篇知乎的鏈接https://zhuanlan.zhihu.com/p/28738634指導(dǎo)如何高效字典操作。

根據(jù)那篇文章改了兩處寫法,如下 (存儲(chǔ)于readFaJoin2.py文件中):

from collections import defaultdictaDict = defaultdict(list)for line in open("GRCh38.fa"):if line[0] == '>':key = line[1:-1]else:aDict[key].append(line.strip())
#----------------------------------------
for key, value in aDict.iteritems():aDict[key] = ''.join(value)

比之前提速接近2s。一個(gè)是使用了defaultdict初始化字典,另外一個(gè)是用iteritems遍歷字典,節(jié)省近一半的內(nèi)存。

time python readFaJoin2.pyreal ? ?0m49.114s
user ? ?0m38.442s
sys ? ?0m10.565s

defaultdict用在這效果不太明顯,之前處理全基因組每個(gè)位點(diǎn)數(shù)據(jù)的頻繁存取時(shí),defaultdict在程序無(wú)論速度還是寫法上都有很大提升。

字典本身還有更多高效用法,可以去參考知乎的那篇文章。這兒介紹的是妙用字典的哈希屬性快速查找項(xiàng)。

在生信操作中,常常會(huì)在一個(gè)大矩陣中匹配已小部分基因或位點(diǎn),提取關(guān)注的基因或位點(diǎn)的信息。最開始的寫法是:

targetL = ['a', 'n', 'c', 'd']
if item in targetL:other_operations

后來(lái),隨著數(shù)據(jù)量變大,發(fā)現(xiàn)這個(gè)速度并不快,于是換了下面的方式

targetL = ['a', 'n', 'c', 'd']
targetD = dict.fromkeys(targetL, 0)if item in targetD:other_operations

又可以愉快的查詢了。

為什么呢?

這是因?yàn)?#xff1a;在Pyhton中列表的查詢時(shí)間復(fù)雜度是O(n)(n是列表長(zhǎng)度);字典的查詢負(fù)責(zé)度是O(1)(與字典長(zhǎng)度無(wú)關(guān))。

字典的查詢復(fù)雜度為什么是O(1)呢? Python中實(shí)現(xiàn)了一個(gè)hash函數(shù),把字典的key轉(zhuǎn)換為哈希值,組成連續(xù)地址的數(shù)字哈希表。字典的每次查詢轉(zhuǎn)換為了從數(shù)組特定位置取出一個(gè)元素,所以時(shí)間復(fù)雜度為O(1)。

后來(lái)發(fā)現(xiàn)pythonset也是用hash table存儲(chǔ),所以上面的程序,可以更簡(jiǎn)化而不影響速度。

targetS = set(['a', 'n', 'c', 'd'])if item in targetS:other_operations

那么速度到底差多大,有沒(méi)有直觀一些的展示呢? 這是StackOverflow的一個(gè)簡(jiǎn)化例子, 百萬(wàn)倍速度差異。

ct@ehbio:~$ python -mtimeit -s 'd=range(10**7)' '5*10**6 in d'

10 loops, best of 3:?182 msec?per loop

ct@ehbio:~$ python -mtimeit -s 'd=dict.fromkeys(range(10**7))' '5*10**6 in d'

10000000 loops, best of 3:?0.16 usec?per loop

ct@ehbio:~$ python -mtimeit -s 'd=set(range(10**7))' '5*10**6 in d'

10000000 loops, best of 3:?0.164 usec?per loop

Ref:

  • 速度測(cè)試?yán)?https://stackoverflow.com/questions/513882/python-list-vs-dict-for-look-up-table

  • python各數(shù)據(jù)結(jié)構(gòu)時(shí)間復(fù)雜度 https://wiki.python.org/moin/TimeComplexity

http://www.risenshineclean.com/news/27111.html

相關(guān)文章:

  • 平頂山公司網(wǎng)站建設(shè)如何做個(gè)人網(wǎng)站
  • 中國(guó)域名備案查詢系統(tǒng)海南seo排名優(yōu)化公司
  • 北京微網(wǎng)站建設(shè)seo優(yōu)化系統(tǒng)
  • 佛山哪個(gè)做網(wǎng)站的好運(yùn)營(yíng)主要做什么工作
  • 免費(fèi)html5網(wǎng)站模板外鏈管理
  • 大連建網(wǎng)站網(wǎng)站制作石家莊seo
  • 用html5設(shè)計(jì)個(gè)人網(wǎng)站如何自己創(chuàng)建網(wǎng)站
  • 四川建設(shè)網(wǎng)站長(zhǎng)沙seo優(yōu)化哪家好
  • 關(guān)于做營(yíng)銷型網(wǎng)站的建議互聯(lián)網(wǎng)營(yíng)銷師考試題庫(kù)
  • 優(yōu)秀定制網(wǎng)站建設(shè)案例寧波的網(wǎng)絡(luò)營(yíng)銷服務(wù)公司
  • 建網(wǎng)站報(bào)價(jià)表百度一下首頁(yè)
  • 深圳上市公司100強(qiáng)常州seo外包
  • 做凍品海鮮比較大的網(wǎng)站有哪些深圳網(wǎng)站建設(shè)推廣方案
  • 響應(yīng)式做的好的網(wǎng)站有哪些怎么樣推廣自己的公司
  • 如何給自己網(wǎng)站做反鏈seo的中文意思是什么
  • 附近裝修公司電話號(hào)碼seo排名首頁(yè)
  • 高端裝修公司名稱seo推廣優(yōu)化培訓(xùn)
  • 代購(gòu)網(wǎng)站系統(tǒng)杭州制作公司網(wǎng)站
  • 佛山做外貿(mào)網(wǎng)站方案百度站長(zhǎng)工具網(wǎng)站提交
  • 淘寶上做網(wǎng)站排名靠譜嗎網(wǎng)站的優(yōu)化策略方案
  • 深圳的網(wǎng)站建設(shè)公司電話網(wǎng)站推廣怎樣做
  • 淘寶網(wǎng)站如何做虛擬機(jī)網(wǎng)絡(luò)軟文是什么意思
  • 校園網(wǎng)站建設(shè)的優(yōu)點(diǎn)東莞網(wǎng)站排名提升
  • 天津平臺(tái)網(wǎng)站建設(shè)哪里好山西網(wǎng)絡(luò)營(yíng)銷seo
  • 邢臺(tái)疫情最新進(jìn)展網(wǎng)站關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 響應(yīng)式網(wǎng)站制作視頻網(wǎng)站排名查詢工具有哪些
  • 容桂網(wǎng)站制作效率好搜索指數(shù)查詢
  • 做網(wǎng)站內(nèi)容管理器要嗎百度下載并安裝到桌面
  • 宿城區(qū)住房和城鄉(xiāng)建設(shè)局網(wǎng)站競(jìng)價(jià)推廣什么意思
  • 沈陽(yáng)公司網(wǎng)站制作廣告軟文范例大全100