序列
python比較神奇,可以從正面數或反著數,每一個位置都有自己的下標
切片(假設現在有一陣列)
1 | a = [1, 2, 3, 4, 5] |
相加 and 相乘
1 | a = [1, 2] |
檢查某個值是否存在
1 | a = [1, 3, 5] |
長度、最大值、最小值
1 | a = [1, 3, 5, 7, 9] |
陣列
建立
1 | # 直接創建 |
刪除
1 | name = [1, 2] |
陣列查詢
簡易查詢
1 | name = [1, 2, 3] |
陣列遍歷
使用for遍歷
1 | name = [1, 2, 3, 4] |
新增、修改、刪除元素
新增
1 | # append()是加在屁股後面的 |
修改元素
1 | name = [0, 1, 3, 3] |
刪除元素
1 | name = [0, 1, 2, 3] |
對陣列進行統計
使用count()函數
1 | nums = [0, 1, 1, 2, 3, 3] |
獲得指定元素第一次出現的位置
1 | # index(object) |
統計數值和
1 | # sum(listname[, start]) |
陣列排序
使用sort()函數
1 | # namelist.sort(key = None, reverse = True) |
使用sorted()函數
1 | # 簡單明瞭的意思是把sort()反過來看就好 |
陣列生成式
生成式可快速生成一個陣列
1 | # list = [表達式 for 循環變量 in range()] |
根據陣列指定需求成新陣列
1 | # list = [表達式 for 循環變量 in 原陣列] |
選擇符合條件的元素生成新陣列
1 | nums = [0, 1, 2, 3, 5, 9] |
二維陣列
定義二維陣列(下標位置)
1 | # [[00, 01, 02, 03], |
使用雙層for迴圈
1 | test = [] |
使用陣列生成式創建
1 | nums = [[i for i in range(5)] for j in range(4)] |
創建元組
使用賦值運算符直接創建
1 | # 是(),不是[],[]是陣列非元組 |
創建空元組
1 | empty = () |
建立data元組
1 | # tuple(data) |
刪除元組
直接進行刪除
1 | # 直接刪除即可 |
尋找元組元素
直接搜索
1 | nums = (0, 1, 2) |
這邊可以結合上面陣列的enumerate()函數進行遍歷元組
修改元組
元組不能進行單個修改,所以……
1 | nums = (0, 1, 2) |
元組相加
必須是元組加元組
1 | nums = (0, 1, 2) |
元組推導式
直接進行推導
1 | import random |
這邊還需要一個tuple,因為元組推導式生成的結果不是一個元組,所以還需要轉換
加上
1 | nums = tuple(nums) |
這邊可以用for遍歷,或是__next__()方法輸出元素
1 | nums = (i for i in range(3)) |
陣列與元組的區別
- 陣列可拿單獨的元素出來改寫,元組須整個替換
- 陣列有append()、extend()、insert()、remove()、pop()等方法改寫,但元組都沒有
- 兩者都支援slice,但元組不支援修改
- 元組的速度比陣列快,不果資料不須更動,不進行修改,建議使用元組
- 陣列不能作為字典的鍵,但元組可以