国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python冷知識-為什么切片和區(qū)間會忽略最后一個元素

這篇具有很好參考價值的文章主要介紹了Python冷知識-為什么切片和區(qū)間會忽略最后一個元素。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在 Python 里,像列表(list)、元組(tuple)和字符串(str)這類序列類型都支持切片操作,但是實際上切片操作比人們所想象的要強大很多。

在切片和區(qū)間操作里不包含區(qū)間范圍的最后一個元素是 Python 的風格,這個習慣符合 Python、C 和其他語言里以 0 作為起始下標的傳統(tǒng)。這樣做帶來的好處如下。

  • 當只有最后一個位置信息時,我們也可以快速看出切片和區(qū)間里有幾個元素:range(3) 和 my_list[:3] 都返回 3 個元素。
  • 當起止位置信息都可見時,我們可以快速計算出切片和區(qū)間的長度,用后一個數減去第一個下標(stop - start)即可。
  • 這樣做也讓我們可以利用任意一個下標來把序列分割成不重疊的兩部分,只要寫成 my_list[:x] 和 my_list[x:] 就可以了,如下所示。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-625878.html

Python冷知識-為什么切片和區(qū)間會忽略最后一個元素,Python,python,ipython

對對象進行切片

一個眾所周知的秘密是,我們還可以用 s[a:b:c] 的形式對 s 在 a 和 b 之間以 c 為間隔取值。c 的值還可以為負,負值意味著反向取值。下面的例子更直觀些:

>>> s = 'bicycle'
>>> s[::3]
'bye'
>>> s[::-1]
'elcycib'
>>> s[::-2]
'eccb”

a:b:c 這種用法只能作為索引或者下標用在 [] 中來返回一個切片對象:slice(a, b, c)。對 seq[start:stop:step] 進行求值的時候,Python 會調用 seq.__getitem__(slice(start, stop, step))。就算你還不會自定義序列類型,了解一下切片對象也是有好處的。例如你可以給切片命名,就像電子表格軟件里給單元格區(qū)域取名字一樣。

多維切片和省略

[] 運算符里還可以使用以逗號分開的多個索引或者是切片,外部庫 NumPy 里就用到了這個特性,二維的 numpy.ndarray 就可以用 a[i, j] 這種形式來獲取,抑或是用 a[m:n, k:l] 的方式來得到二維切片。要正確處理這種 [] 運算符的話,對象的特殊方法 __getitem__ 和 __setitem__ 需要以元組的形式來接收 a[i, j] 中的索引。也就是說,如果要得到 a[i, j] 的值,Python 會調用 a.__getitem__((i, j))。

Python 內置的序列類型都是一維的,因此它們只支持單一的索引,成對出現(xiàn)的索引是沒有用的。省略(ellipsis)的正確書寫方法是三個英語句號(...),而不是 Unicdoe 碼位 U+2026 表示的半個省略號(...)。省略在 Python 解析器眼里是一個符號,而實際上它是 Ellipsis 對象的別名,而 Ellipsis 對象又是 ellipsis 類的單一實例。它可以當作切片規(guī)范的一部分,也可以用在函數的參數清單中,比如 f(a, ..., z),或 a[i:...]。在 NumPy 中,... 用作多維數組切片的快捷方式。如果 x 是四維數組,那么 x[i, ...] 就是 x[i, :, :, :] 的縮寫。

給切片賦值

如果把切片放在賦值語句的左邊,或把它作為 del 操作的對象,我們就可以對序列進行嫁接、切除或就地修改操作。通過下面這幾個例子,你應該就能體會到這些操作的強大功能:

>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[2:5] = [20, 30]
>>> l
[0, 1, 20, 30, 5, 6, 7, 8, 9]
>>> del l[5:7]
>>> l
[0, 1, 20, 30, 5, 8, 9]
>>> l[3::2] = [11, 22]
>>> l
[0, 1, 20, 11, 5, 22, 9]
>>> l[2:5] = 100  ?
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only assign an iterable
>>> l[2:5] = [100]
>>> l
[0, 1, 100, 22, 9]

? 如果賦值的對象是一個切片,那么賦值語句的右側必須是個可迭代對象。即便只有單獨一個值,也要把它轉換成可迭代的序列。

?

?

到了這里,關于Python冷知識-為什么切片和區(qū)間會忽略最后一個元素的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 如何抓住IT行業(yè)最后的紅利?網絡安全為什么是風口行業(yè)?

    如何抓住IT行業(yè)最后的紅利?網絡安全為什么是風口行業(yè)?

    “沒有網絡安全就沒有國家安全”。當前,網絡安全已被提升到國家戰(zhàn)略的高度,成為影響國家安全、社會穩(wěn)定至關重要的因素之一。 1、就業(yè)薪資非常高,漲薪快 2021年獵聘網發(fā)布網絡安全行業(yè)就業(yè)薪資行業(yè)最高人均33.77萬! 2、人才缺口大,就業(yè)機會多 2019年9月18日《中華人

    2023年04月20日
    瀏覽(29)
  • 知識變現(xiàn)海哥:為什么你做不好知識博主?

    知識變現(xiàn)海哥:為什么你做不好知識博主? 你做不好知識博主,主要有思個原因,請你對號入座: 1.急功近利 很多知識博主一上來就想要直接變現(xiàn),一旦做不好就想要放棄,發(fā)了不到一周的文章或視頻,看沒什么數據就不想做,一個月沒有大的播放量就怪平臺不給流量或者

    2024年02月06日
    瀏覽(25)
  • 【知識儲備】Transformer為什么用LN而不用BN
  • 為什么要使用零知識證明來開發(fā)跨鏈協(xié)議

    在過去的幾年當中出現(xiàn)了各種各樣的獨立公鏈以及以太坊 Layer 2。 由于在安全性、低成本、快速交易以及開發(fā)者和用戶社區(qū)差異等方面,不同鏈都具有各自不同的優(yōu)勢,用戶在不同鏈之間切換使用的行為是很常見的。 比起以太坊鏈,Layer2 以及其他獨立公鏈上的手續(xù)費會更加

    2024年01月19日
    瀏覽(56)
  • Elasticsearch 為什么能做到快速檢索?秘密在這里!,Java全棧知識體系

    Elasticsearch 為什么能做到快速檢索?秘密在這里!,Java全棧知識體系

    如果你了解 ES 應該知道,ES 可以說是對 Lucene 的一個封裝,里面關于倒排索引的實現(xiàn)就是通過 lucene 這個 jar 包提供的 API 實現(xiàn)的,所以下面講的關于倒排索引的內容實際上都是 lucene 里面的內容。 三、倒排索引 首先我們還不能忘了我們之前提的搜索需求,先看下建立倒排索引

    2024年04月12日
    瀏覽(19)
  • 為什么用python做人工智能,為什么人工智能用python

    為什么用python做人工智能,為什么人工智能用python

    大家好,給大家分享一下python人工智能為什么放到最后才學,很多人還不知道這一點。下面詳細解釋一下。現(xiàn)在讓我們來看看! Source code download: 本文相關源碼 一、為何人工智能(AI)首選Python? 讀完這篇文章你就知道了。我們看谷歌的TensorFlow基本上所有的代碼都是C++和Python,

    2024年02月22日
    瀏覽(22)
  • HTTPS 為什么是安全的 _ (下),掌握了這些Android高級工程師必備知識

    HTTPS 為什么是安全的 _ (下),掌握了這些Android高級工程師必備知識

    證書 的目的是確保公鑰的合法性,它的本質就是為公鑰加上數字簽名。它的安全性由證書鏈頂端的根證書來保證。 如果你對這幾個工具還不是很熟悉,就無法徹底的了解 HTTPS 的通信流程,不妨再閱讀一遍 HTTPS 為什么是安全的 ? (上) 。 有了這些前置知識,下面就來深入剖析

    2024年04月11日
    瀏覽(37)
  • 怎么自學python?為什么選擇python

    怎么自學python?為什么選擇python

    自然是因為Python簡單易學且應用領域廣 Python近段時間一直漲勢迅猛,在各大編程排行榜中嶄露頭角,得益于它多功能性和簡單易上手的特性,讓它可以在很多不同的工作中發(fā)揮重大作用。 正因如此,目前幾乎所有大中型互聯(lián)網企業(yè)都在使用 Python 完成各種各樣的工作,比如

    2024年02月04日
    瀏覽(23)
  • 為什么Python不適合寫游戲?

    為什么Python不適合寫游戲?

    知乎上有熱門個問題:Python 能寫游戲嗎?有沒有什么開源項目? Python作為腳本語言,一般很少用來開發(fā)游戲,但也有不少大型游戲有Python的身影,比如: 坦克世界大戰(zhàn)(作為用戶端腳本) 文明IV(作為地圖編輯器腳本) 戰(zhàn)場2(作為游戲玩法腳本) 模擬市民(作為mod腳本)

    2024年04月17日
    瀏覽(19)
  • python為什么長期霸占榜首

    python為什么長期霸占榜首

    Python霸占榜首 只因它真的很強 Python,年齡可能比很多讀者都要大,但是它在更新快速的編程界卻一直表現(xiàn)出色,甚至有人把它比作是編程界的《葵花寶典》,只是Python的速成之法相較《葵花寶典》有過之而無不及。 Python簡潔,高效的特點,大大提升了程序員的編碼速度,極

    2024年02月02日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包