【Python】高階特性之切片(slice)
在瞭解什麼是切片之前,先考慮一個問題:給定一個字串或者陣列,在Python中如何取其中的一部分資料。比如說我們要取前五個數或者前五個字元。在C++或者Java中底層都封裝了很好的庫函式給我們直接呼叫,比如Java中有subString,那麼在Python中,我們首先能想到最笨的方法就是把這前五個元素列舉出來:
list=[1,2,3,4,5,6,7,8,9]
print(list[0], list[1], list[2], list[3], list[4])
然後我們稍微想一下,好像能改進,可以用迴圈,於是有如下程式碼:
list=[1,2,3,4,5,6,7,8,9] for i in range(5): print(list[i])
但是,這樣還是太麻煩了,畢竟都用上了迴圈。其實,Python是提供了一種切片機制,當我們有這種需求時,能極大地簡化我們的程式碼:
list=[1,2,3,4,5,6,7,8,9]
print(list[0:5])
中括號[]中第一個元素表示起始偏移量,第二個元素表示結束偏移量,但是這裡需要注意一點,這個範圍是左閉右開的,即[0:5]=0,1,2,3,4。如果第一個偏移量是0,程式碼也可以簡化為list[:5]。同時也支援隔幾個元素取一次,比如每兩個元素取一次可以寫成list[0:5:2]=[1,3,5]。
我們知道,Python支援list中取倒數第幾個元素,那麼類似的,也支援倒數取切片。
list=[1,2,3,4,5,6,7,8,9]
print(list[-3:-1]) #結果為[7,8]
同時,tuple也是一種特殊的list,也可以使用切片操作,切片返回的結果也是tuple,字元串同樣也行,下面舉兩個簡單的例子:list = (1,2,3,4,5,6,7,8,9)
str = '123456789'
print(list[0:5]) #結果為(1,2,3,4,5)
print(str[0:5]) #結果為12345
相關推薦
【Python】高階特性之切片(slice)
在瞭解什麼是切片之前,先考慮一個問題:給定一個字串或者陣列,在Python中如何取其中的一部分資料。比如說我們要取前五個數或者前五個字元。在C++或者Java中底層都封裝了很好的庫函式給我們直接呼叫,比如Java中有subString,那麼在Python中,我們首先
【python】leetcode 125. Valid Palindrome (easy)
125. Valid Palindrome (easy) Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring
【python】leetcode 189. Rotate Array (easy)
189. Rotate Array (easy) Given an array, rotate the array to the right by k steps, where k is non-negative. Example 1:
【python】re模組的用法(2)—— 提取字串中括號內的內容
Python使用re模組正則提取字串中括號內的內容示例 這篇文章主要介紹了Python使用re模組正則提取字串中括號內的內容,結合例項形式分析了Python使用re模組進行鍼對括號內容的正則匹配操作,並簡單解釋了相關修正符與正則語句的用法,需要的朋友可以參考下 本文例項講述
【轉載】iPhone開發之NSNotificationCenter(通知)的使用方法
iPhone軟體開發的時候會遇到這種情況:開啟APP後會在後臺執行某個方法,例如下載檔案,下載完成後可能需要呼叫某個方法來重新整理介面,這時候可能沒法在下載的函式中回撥。NSNotificationCenter(通知)是一個很好的選擇。 通知使用起來灰常的簡單: 1、定義通知:[[NSNotifica
Java高階特性之列舉(二)
01.Enum不可以有public或者protected的構造方法,只能是private或friendly(就前面不用修飾符),這樣可以保證客戶程式碼不能新建一個Enum的例項,我們也不需要例項化Enum物件。 Enum定義的列表成員跟介面一樣都是public,sta
JAVA面向物件高階特性之繼承(1)常見問題解答
1、什麼是繼承? 答:如果說A是一個B,則我們說A繼承自B。通過繼承來實現程式碼的複用。 2、Java中如何實現繼承? 答:Java類通過extends關鍵字實現繼承,所有的類都間接或者直接繼承自Object類。 3、Java中,有繼承關係時,變數隱藏的原則? 答:子類
【Java】基礎型別之float(八)
特徵 float 資料型別是單精度、32位、符合IEEE 754標準的浮點數;float 在儲存大型浮點陣列的時候可節省記憶體空間;預設值是 0.0f;浮點數不能用來表示精確的值,如貨幣;flo
【python】打飛機小遊戲(一)
首先宣告一點,這篇部落格完全參照了小甲魚的《零基礎入門學習Python》教學視訊 打飛機小遊戲思路: 1、載入背景音樂 2、播放背景音樂(單曲迴圈) 3、我方飛機誕生 interval = 0(
【Java】基本型別之long(六)
long 資料型別是 64 位、有符號的以二進位制補碼錶示的整數;最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,
【Zookeeper】原始碼分析之伺服器(二)
一、前言 前面闡述了伺服器的總體框架,下面來分析伺服器的所有父類ZooKeeperServer。 二、ZooKeeperServer原始碼分析 2.1 類的繼承關係 public class ZooKeeperServer implements SessionE
【轉載】Flume學習之路 (一)Flume的基礎介紹
必須 4.3 bin tar.gz 開源 暴露 linu ror 失敗 討論QQ:1586558083目錄一、背景二、Flume的簡介三、Flume NG的介紹3.1 Flume特點3.2 Flume的一些核心概念3.3 Flume NG的體系結構3.4 Source3.5
Selenium2+python自動化56-unittest之斷言(assert)【轉載】
用例 lists tca enc whether set .py exce req 前言 在測試用例中,執行完測試用例後,最後一步是判斷測試結果是pass還是fail,自動化測試腳本裏面一般把這種生成測試結果的方法稱為斷言(assert)。 用unittest組件測試用例的
Python小白學習之路(十)—【函式】【函式返回值】【函式引數】
寫在前面: 昨天早睡之後,感覺今天已經恢復了百分之八十的樣子 又是活力滿滿的小夥郭 今日份雞湯: 我始終相信,在這個世界上,一定有另一個自己,在做著我不敢做的事,在過著我想過的生活。-------宮崎駿 函式 一、函數出現的背景 在學習函式之前,一直遵循:面向過程程式設計,即:根據業務邏輯從上到
Python小白學習之路(十)—【函數】【函數返回值】【函數參數】
函數返回值 列表 默認參數 print 關鍵字 內部 if條件語句 pre 提取 寫在前面: 昨天早睡之後,感覺今天已經恢復了百分之八十的樣子 又是活力滿滿的小夥郭 今日份雞湯: 我始終相信,在這個世界上,一定有另一個自己,在做著我不敢做的事,在過著我想過的生活。-----
Python小白學習之路(十三)—【遞迴呼叫】
一、遞迴呼叫定義 在函式內部,可以呼叫其他函式。 如果在呼叫一個函式的過程中直接或間接呼叫自身本身,則稱為遞迴呼叫 從某種意義上來說,遞迴呼叫可以實現無限迴圈 二、遞迴呼叫的特性 必須有一個明確的結束條件 每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 遞迴效率不高,遞迴層次
Python小白學習之路(十三)—【遞歸調用】
結束 style mon port 特性 小白 好的 就是 實例 一、遞歸調用定義 在函數內部,可以調用其他函數。 如果在調用一個函數的過程中直接或間接調用自身本身,則稱為遞歸調用 從某種意義上來說,遞歸調用可以實現無限循環 二、遞歸調用的特性 必須有一個明確的結束條件
Python高階特性——切片(Slice)
摘錄廖雪峰網站 定義一個list: 1 L = ['haha','xixi','hehe','heihei','gaga'] 取其前三個元素: >>> L[0],L[1],L
Python小白學習之路(五)—【類和物件】【列表】【列表相關功能】
類和物件 (簡單的瞭解一下這個概念,初步有個印象,這個概念很重要,後面會著重講) 類:具有相同屬性和方法的物件的集合; 物件:萬物皆物件; 概念很抽象(每當我看不到概念的時候,我就會通過舉例來理解) 我們說的數字(int)、字串(str)以及今天學習的列表(list)就是類 list # 類
Python小白學習之路(七)—【字典】【字典的功能】【布林值】
字典(dict) 基本結構: d = {key1 : value1, key2 : value2 } dict = {'K1': 1, 'K2': 2, 'K3': '3'} key : value稱為字典的鍵值對。 每個鍵 key和值value 之間用冒號 : 分割 每個鍵值對(也就是字典的一個元素)