什么是切片

切片,是一個比較生疏的名詞,這是現代計算機編程語言或者說Python里的一個概念,大致意思是從一個集合里切出一塊來,就像切一塊豆腐,一刀下去切出兩塊豆腐

先看一個函數range、返回值是列表,內容和傳入range的函數有關。

a = range(1, 21)
print a

?

結果

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

明白了,range可以產生從1到20共20個元素的列表,range的第二個參數不包含這個值,但包含第一個參數的值,每個元素值相差為1

切片是對有序的集合而言,意思從有序集合里提取數據構成子集集合,給定提取的起點start、終點end以及方向上的步長step,能否切出非空子集,起點start需能沿步長方向上到達終點。

字符串和列表、元組都是有序集合,均可實現切片操作,以列表為例給出切片的語法格式如下:

子集名 = 有序集合名[start : end : step]

上邊range(1, 21)和切片里的start、end是呼應一致的,含起點start對應的值而不含終點end所對應的值。

step = 1

子集的構成是從start開始每step取一個數據一至到end-1位置結束,step默認為1時,可以省略不寫。

s = "python"
a = list(s)
print a
b = a[2:5]
print b

?

程序的結果如下:

['p', 'y', 't', 'h', 'o', 'n']
['t', 'h', 'o']

0

1

2

3

4

5

'p'

'y'

't'

'h'

'o'

'n'

從print b這條語句的打印結果['t', 'h', 'o']可知,'t'在a列表的index為2,'n'字符的index為5,那么a[2:5]的step為1,從't'開始逐個取回字符't'、'h'、'o'組成新的列表的子集b,而字符'n'的index為5,5作為取切片操作a[2:5]里的終點,其字符'n'不取回。從例子可以看出step 為1可以理解為“逐個取”。

step > 1

step可以大于1,這個時候對于step的理解可以這樣認為,每step個取一個。

s = "python"
a = list(s)
print a
b = a[2:5:2]
print b

?

程序的結果如下:

['p', 'y', 't', 'h', 'o', 'n']
['t', 'o']

對于列表a取切片a[2 : 5 : 2], 從index為2開始,每2個元素為一組取每組的第一個數據值,一只到index為5結束,但不取index為5的數據。

a[2 : 5 : 2]具體操作是這樣的,從index為2的字符't'開始,到index為5的字符'n'之前,每2個為一組('t', 'h')、('o', 'n')取每組的第一個元素值't'、'o'即結果子集b的值。

再看一個例子:

a = range(12)
print a
b = a[1 : 10 : 3]
print b

?

結果是:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[1, 4, 7]

?

從兩行輸出結果的第一行可以看出range函數可以產生一個從0開始到小于12的整數的列表,共12個數據。第二行的輸出[1, 4, 7]是怎么產生的呢?這個和對a列表的切片操作有關,a[1 : 10 : 3],這里a[1:10] = [1, 2, 3, 4, 5, 6, 7, 8, 9],每3個一組,從每組取第一個,即 [1, 2, 3],[4, 5, 6], [7, 8, 9]這三組,取每組第一個1、4、7構成b這個子集,最后得到的b = [1, 4, 7]。

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

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

相關文章

【MySQL】mysql中不推薦使用uuid或者雪花id作為主鍵的原因以及差異化對比

文章目錄 前言什么是UUID?什么是雪花ID?什么是MySql自增ID?優缺點對比UUID:優點1.全球唯一性2.無需數據庫支持 缺點1.存儲空間大2.索引效率低3.查詢效率低 雪花ID:優點1.分布式環境下唯一性 缺點1.依賴于機器時鐘2.存儲空間較大3.查詢效率低 MYSQL自增:優點1.簡單…

qml PathView使用介紹

PathView 是 QML 的一個強大的元素,它能夠在任意路徑上布局和滾動項目。這使得創建復雜的滾動視圖和項目動畫變得相對更簡單。 以下是 PathView 的一些主要特性: 路徑定義: PathView 根據 Path 元素定義的路徑布局項目。路徑可以是簡單的直線,復雜的曲線,或者包含多個不同…

IP 代理的基礎知識有哪些?

本文將介紹流冠IP代理的基礎知識,幫助您了解IP代理的概念、類型、作用、設置方法和注意事項。 一、IP代理的概念 IP代理是一種網絡代理服務,它通過代理服務器幫助用戶訪問互聯網,并將用戶的請求轉發到目標網站,同時將目標網站的響…

手寫工作流設計模式,針對常見的工作流步驟流轉,減少過多的if/else,提升編程思維

需求 這一年下來,寫兩次工作流流轉,總結下經驗。 第一次寫的時候,只找到用模版設計模式包裹一下,每個方法都做隔離,但是在具體分支實現的時候,if/else 滿屏分,而且因為要針對不同情況&#xff…

微信小程序實現類似Vue中的computed、watch功能

微信小程序實現類似Vue中的computed、watch功能 構建npm使用 構建npm 創建包管理器 進入小程序后,打開終端,點擊頂部“視圖” - “終端” 新建終端 使用 npm init -y初始化包管理器,生成一個package.json文件 安裝 npm 包 npm install --…

Java Web 實戰 21 - 用 Servlet 實現一個Hello World

用 Servlet 來寫一個 Hello World~ 一 . 基本部署方式1.1 創建 Servlet 項目1.2 引入依賴1.3 創建目錄1.4 編寫代碼繼承 HttpServlet重寫 doGet 方法刪除 super 方法加上 WebServlet 注解寫業務邏輯 1.5 打包1.6 部署1.7 驗證1.8 小結 二 . 更方便的部署方式2.1 Smart Tomcat 的…

【docker】安裝redis和mysql生產實戰

docker安裝諸如redis,mysql等程序非常方便,但是如果不是為了學習,生產環境的部署還是要注意很多問題的 mysql docker pull mysql:5.7mkdir -p /usr/docker/mysql/{conf,logs,data}docker run -d -p 3306:3306 --privilege

ORA-28003: password verification for the specified password failed,取消oracl密碼復雜度

自己在測試環境想要使自己的Oracle數據庫用戶使用簡單的密碼方便測試,結果指定密碼的密碼驗證失敗 SQL> alter user zzw identified by zzw; alter user zzw identified by zzw * ERROR at line 1: ORA-28003: password verification for the specified password…

本地部署 ComfyUI

本地部署 ComfyUI ComfyUI 介紹ComfyUI Github 地址部署 ComfyUI配置模型地址 or 下載模型啟動 ComfyUI訪問 ComfyUI ComfyUI 介紹 最強大、模塊化的穩定擴散 GUI 和后端。 該用戶界面將允許您使用基于圖形/節點/流程圖的界面設計和執行高級穩定擴散管道。 ComfyUI Github 地…

用戶運營常用的ChatGPT通用提示詞模板

如何建立和完善用戶運營體系,提高用戶滿意度和忠誠度? 如何制定有效的用戶獲取和留存策略,提高用戶生命周期價值? 如何運用多種渠道和平臺進行用戶運營,提高用戶參與度和互動性? 如何建立和維護用戶社群…

第五天 用Python批量處理Excel文件,實現自動化辦公

用Python批量處理Excel文件,實現自動化辦公 一、具體需求 有以下N個表,每個表的結構一樣,如下: 需要把所有表數據匯總,把每個人的得分、積分分別加起來,然后按總積分排名,總積分一致時&#xff…

小程序可拖拽按鈕

你有沒有遇到過在頁面中有一個固定在某個位置的按鈕,永遠的擋住了你想要看的區域? 在小程序的列表頁面中,常常會有一個提報的入口固定在右下角,如果這個按鈕不可拖動的話,可能會擋住下面的事件,讓用戶操作起…

云端導覽,數字互動 | 拓世法寶AI數字人一體機助力全新旅游時代

《中國旅行消費趨勢洞察白皮書(2023版)》顯示,消費者旅行習慣已從“到此一游”變為“深度在地”,更強調在旅游中充實自我、學習新知識。 (《中國旅行消費趨勢洞察白皮書(2023版》截圖) 從這些資…

C++標準模板(STL)- 類型支持 (類型修改,從給定類型移除引用,std::remove_reference)

類型特性 類型特性定義一個編譯時基于模板的結構&#xff0c;以查詢或修改類型的屬性。 試圖特化定義于 <type_traits> 頭文件的模板導致未定義行為&#xff0c;除了 std::common_type 可依照其所描述特化。 定義于<type_traits>頭文件的模板可以用不完整類型實例…

Springboot整合MybatisPlus及分頁功能

1 引入pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId><version>2.7.14</version> </dependency> <dependency><groupId>com.baomidou</groupId><a…

【Vue】Vue3 配置全局 scss 變量

variables.scss $color: #0c8ce9;vite.config.ts // 全局css變量css: {preprocessorOptions: {scss: {additionalData: import "/styles/variables.scss";,},},},.vue 文件使用

讀書筆記:彼得·德魯克《認識管理》第33章 管理者與管理科學

一、章節內容概述 把管理科學的潛力轉變為績效&#xff0c;主要取決于管理者。要做到這一點&#xff0c;管理者必須理解管理科學是什么以及能夠做什么。管理者必須明白&#xff0c;管理科學固有的特殊局限性在很大程度上源于自身的起源和歷史。但最重要的是&#xff0c;管理者…

Java大型電商項目——品優購(一)

視頻教程&#xff1a;【黑馬程序員】Java大型電商項目—品優購【配套源碼筆記】_嗶哩嗶哩_bilibili源碼下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1fECz5In_XCB-aW6ed6ZTbA 提取碼&#xff1a;27xa 技術選型&#xff1a; 后端框架&#xff1a;SpringSprin…

多功能回饋式交流電子負載的應用

多功能回饋式交流電子負載是用于模擬和測試電源、電池等電子設備的負載工具。它具有多種應用&#xff0c;可以用于測試和評估各種類型的電源&#xff0c;包括直流電源和交流電源。它可以模擬各種負載條件&#xff0c;如恒定電流、恒定電壓和恒定功率&#xff0c;以驗證電源的性…

小葉子鋼琴智能陪練 助力打牢鋼琴基礎

孩子在練琴過程中&#xff0c;經常會出現錯音錯節奏&#xff0c;為了能夠幫助她更高效的練琴&#xff0c;最近開始使用智能鋼琴陪練工具——小葉子鋼琴智能陪練。 身邊也有很多朋友在用這款應用&#xff0c;它比較知名的功能就是三大練琴模式&#xff0c;也就是識譜模式、提升…