成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用python怎么實(shí)現(xiàn)一個(gè)駐留字符串

使用python怎么實(shí)現(xiàn)一個(gè)駐留字符串?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到洛南網(wǎng)站設(shè)計(jì)與洛南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋洛南地區(qū)。

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門(mén)、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門(mén)的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。

駐留字符串的原因

字符串駐留提高了字符串比較的速度。若未駐留,則當(dāng)我們要比較兩個(gè)字符串是否相等時(shí),其時(shí)間復(fù)雜度會(huì)升至O(n),也就是說(shuō),需要檢查兩個(gè)字符串中的每一個(gè)字符,以確定它們是否相等。

駐留字符串的原理

如果字符串是固定的,那么因?yàn)橄嗤淖址畬⑹褂孟嗤膶?duì)象引用,所以只要檢查指針是否相同,就可以確定兩個(gè)字符串是否相等,而不必再逐個(gè)檢查每個(gè)字符。因?yàn)檫@是一種非常常見(jiàn)的操作,所以通常會(huì)將它作為指針相等檢查來(lái)實(shí)現(xiàn),只使用一條完全沒(méi)有內(nèi)存引用的機(jī)器指令。

String駐留可以減少內(nèi)存占用。Python避免了內(nèi)存中充滿過(guò)多的字符串對(duì)象,并通過(guò)共享和重用已定義對(duì)象來(lái)優(yōu)化內(nèi)存占用。

實(shí)現(xiàn)駐留字符串:使用PyUnicode_InternInPlace函數(shù)

定義在 unicodeobject.c 中,當(dāng)調(diào)用時(shí),它會(huì)創(chuàng)建一個(gè)準(zhǔn)備容納所有駐留的字符串的字典interned,然后登記入?yún)⒅械膶?duì)象,令其鍵和值都使用相同的對(duì)象引用。

  void
  PyUnicode_InternInPlace(PyObject **p)
  {
      PyObject *s = *p;
 
      .........
 
      // Lazily build the dictionary to hold interned Strings
      if (interned == NULL) {
          interned = PyDict_New();
          if (interned == NULL) {
              PyErr_Clear();
              return;
          }
      }
 
      PyObject *t;
 
      // Make an entry to the interned dictionary for the
      // given object
      t = PyDict_SetDefault(interned, s, s);
 
      .........
 
      // The two references in interned dict (key and value) are
      // not counted by refcnt.
      // unicode_dealloc() and _PyUnicode_ClearInterned() take
      // care of this.
      Py_SET_REFCNT(s, Py_REFCNT(s) - 2);
 
      // Set the state of the string to be INTERNED
      _PyUnicode_STATE(s).interned = SSTATE_INTERNED_MORTAL;
  }

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

當(dāng)前名稱(chēng):使用python怎么實(shí)現(xiàn)一個(gè)駐留字符串
轉(zhuǎn)載源于:http://jinyejixie.com/article14/jjpode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、微信小程序、、全網(wǎng)營(yíng)銷(xiāo)推廣、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
平和县| 永新县| 巴中市| 漯河市| 通州区| 永济市| 鄂温| 阜城县| 永新县| 府谷县| 永德县| 方正县| 蒲城县| 三明市| 屯昌县| 高碑店市| 桂林市| 壶关县| 达州市| 莱芜市| 民县| 金沙县| 甘孜| 余庆县| 海口市| 广河县| 哈巴河县| 泰兴市| 松原市| 城步| 三江| 沁源县| 泸定县| 江北区| 孟州市| 柳江县| 虞城县| 灌南县| 临海市| 闽清县| 成安县|