Python學習4:序列

Python中沒有數組的概念,類似的數據結構是序列。序列包括列表和元組兩種。今天學習的是一些序列的通用操作。

1. 概覽

序列可以表示多個元素的集合。下面是一個列表的例子,非常靈活,可以塞進去各種類型的數據。

name = ["peter", "john"]    //  可以包含全是字符串
age = [40, 32]              //  也可以全是數字
peter = ["male", 180]       //  也可以是混合類型
total = [name, age, peter]  //  還可以混合之后再混合
print(name)
print(age)
print(peter)
print(total)

2. 索引

通過標號下標來訪問序列中的元素,這個下標就是索引。

x = "hello"  //  字符串"hello"包含5個字符元素:'h','e','l','l','o'。下標從0開始
print(x[3])  //  這里訪問下標為3的元素,也就是第二個 'l'
print(x[-4]) //  也可以用負數作為下標,表示從最后一個位開始倒數,-1表示最后一位的下標

3. 分片

分片和索引類似,不過索引是訪問一個元素,而分片則是訪問一定范圍內的元素。

balance = [3, 1, 412, 532, 645, 75, 878, 1, 4, 33, 57]
x = balance[3:6]      //  x是balance中下標3(含)到下標6(不含)的一個序列
y = balance[-9:-3]    //  y是下標-9到下標-3的一個序列
z = balance[4:-3]     //  z也是可以的,關鍵在于下標4的元素(645)在下標-3(4)的左邊
w = balance[-1:5]     //  w雖然也可以,但是由于下標-3的元素(57)在下標5(75)的右邊,所以返回一個空的列表
v = balance[6:]       //  如果想直接最后一個元素,那么可以使用這樣的寫法

這種分片操作步長是1,也就是相鄰的元素都會算進去。那么有沒有一款。。。不對,有沒有一種步長不是1的呢?

balance = [3, 1, 412, 532, 645, 75, 878, 1, 4, 33, 57]
x = balance[3:6:1]      //  最后一位數字1表示步長為1
y = balance[-9:-3:2]    //  同理這里步長是2,如果離最后一個元素不足2的距離,則直接結束
z = balance[4::3]       //  這里也可以簡寫
w = balance[::5]        //  還可以繼續簡寫,省略第一位數字表示從0開始
v = balance[8:2:-1]     //  步長也可以是負數,這時候表示從右到左,第一位下標必須在第二位的右邊

4. 序列相加

同類型的序列可以相加,會拼接在一起(類似字符串相加)。不同類型的不能相加。

x = [1, 2, 3]
y = [4, 5, 6]
z = "hey"
a = x + y  //  可以相加拼接
b = x + z  //  不能拼接,會報錯

5. 乘法

序列乘以一個數字n,會使得原來的序列被重復n次。

//  普通的序列乘法
x = [1, 2, 3]
a = x * 5
//  空序列乘法
x = [None]  //  None是python內部一個特殊值,代表“空值”,沒有任何元素。
a = x * 5

6. 成員資格

可以使用“in”運算符來判斷一個元素是否存在于序列中。

x = [426, 75, 435]
isMember = (75 in x)
print(isMember)

這種用法是不行的:(結果為False)

x = [426, 75, 435]
isMember = ([75, 435] in x)

但是字符串的子串檢測是可以的(Python 2.3以后版本):

x = "helloworld"
isMember = ("owo" in x)
print(isMember)

7. 長度、最大值和最小值

序列長度,元素的最大值和最小值都有內置方法(len、max、min):

nums = [12, 54, 93, 456]
length = len(nums)
maxNum = max(nums)
minNum = min(nums)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 數據結構,是指通過某種方式(例如對元素進行編號)組織在一起的數據元素的集合,這些數據元素可以是數字或者字符,甚至可...
    千釋炎閱讀 807評論 0 0
  • 136.泛型 泛型代碼讓你可以寫出靈活,可重用的函數和類型,它們可以使用任何類型,受你定義的需求的約束。你可以寫出...
    無灃閱讀 1,513評論 0 4
  • 2.3 序列 來源:2.3 Sequences 譯者:飛龍 協議:CC BY-NC-SA 4.0 序列是數據值...
    布客飛龍閱讀 746評論 0 36
  • "理性"是個褒義詞,只是在一部分時候。 理性是堅固的鎧甲,可以讓人覺得自己不容易犯錯,也不容易被指責。但鎧甲的弊端...
    踢車劉閱讀 394評論 0 0
  • 今天溫老師的課讓我理清了自己的思路。曾經對人對事包括理財投資我會盲目信任,并未靜下心來預估風險,感性而為。所以有時...
    范秀云閱讀 198評論 0 0