什麼是列表?
列表和C語言,Java中的陣列類似,它是python中的一種參照數據型別
不同於陣列的是,陣列只能存放一種數據型別,而列表可以存放不同類型的數據型別
其不僅具有堆疊的性質,還附有佇列的性質,應用非常的靈活,同樣也是python中序列的一種
列表的字面量定義方法用[]
list1 = [] # 這樣就可以直接定義了一個空列表
list2 = [1,2,True,"str",1.0]
方法 | 描述 |
---|---|
list.append(x) | 把一個元素新增到列表的結尾,相當於 a[len(a):] = [x]。 |
list.extend(L) | 通過新增指定列表的所有元素來擴充列表,相當於 a[len(a):] = L。 |
list.insert(i, x) | 在指定位置插入一個元素。第一個參數是準備插入到其前面的那個元素的索引,例如 a.insert(0, x) 會插入到整個列表之前,而 a.insert(len(a), x) 相當於 a.append(x) 。 |
list.remove(x) | 刪除列表中值爲 x 的第一個元素。如果沒有這樣的元素,就會返回一個錯誤。 |
list.pop([i]) | 從列表的指定位置移除元素,並將其返回。如果沒有指定索引,a.pop()返回最後一個元素。元素隨即從列表中被移除。(方法中 i 兩邊的方括號表示這個參數是可選的,而不是要求你輸入一對方括號,你會經常在 Python 庫參考手冊中遇到這樣的標記。) |
list.clear() | 移除列表中的所有項,等於del a[:]。 |
list.index(x) | 返回列表中第一個值爲 x 的元素的索引。如果沒有匹配的元素就會返回一個錯誤。 |
list.count(x) | 返回 x 在列表中出現的次數。 |
list.sort() | 對列表中的元素進行排序。 |
list.reverse() | 倒排列表中的元素。 |
list.copy() | 返回列表的淺複製,等於a[:]。 |
list1 = [] # 列表的定義
list2 = list() # 這樣也可以定義一個空列表
# 增加數據
list1.append(1) # 在列表的尾部追加一個數據
print(list1)
list2.append("hello")
# list1.extend(list2) # 實現列表的拼接
list1 = list1 + list2 # 實現列表的拼接,單獨使用時會引起pycharm的一些小bug,不影響程式執行
print(list1)
list2.insert(0, 1.5)
# 第一個參數是索引位置,第二個是要插入的值,在該位置插入後,其餘的元素會自動往後移一位
print(list2)
# list2[2] = "你好" # 不支援 index out of range
print("=" * 35)
# 查詢讀取
print(list1[0]) # 通過索引讀取列表的值
print(list1[-1]) # 除了從前往後讀取,還支援從後往前讀取 -可以取到最後一位
print(list2.index("hello")) # 查詢列表中是否包含某個元素,如包含則返回索引,不包含則報錯
print("=" * 35)
# 刪除
a = list2.pop() # 當不指定參數時預設取出最後一個,這裏有點像堆疊,後進先出,同時取出來的元素可以用變數接收
# 當指定參數時,取出對應索引位置上的元素
print(a)
print(list2)
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
list2.remove(1) # 從左往右,如果找到目標就將其刪除,而且只會刪除一個目標,如果沒有找到就會返回一個錯誤,
print(list2)
list2.clear() # 清空列表
print(list2)
print("=" * 35)
# 其他方法
list2 = [1, 2, 3, 4, 5, "6", 7, 8, 6, 6, "9"]
print(list2.count("1")) # 統計某元素的個數,不會報錯,不存在則返回0
print(list2.count(6)) # 2 存在則返回其個數
list1 = list2.copy() # 複製一個列表,做備份時會用到
print(list1)
list1.remove("6")
list1.remove("9")
list1.sort() # 對列表元素進行排序(預設升序排序),如果列表元素有多種不同數據型別的數據則會報錯
print(list1)
list2.sort(key=int) # 如果硬要對不同數據型別的元素進行排序的話就要指定,就要指定參數key作爲比較依據
print(list2)
list2.sort(key=int, reverse=True) # 如果要進行降序排序,則給reverse參數 設定爲 True
print(list2)
list2.reverse() # 翻轉列表
print(list2)
列表的切片與字串切片用法一致
列表是序列,所以它是有序可以迭代的,可以用for回圈進行遍歷
列表推導式,小技巧
# 切片
list1 = [1, 2, 3, 45, 7, 8, 9]
li2 = list1[0:-1]
print(li2)
# 遍歷
for item in li2:
print(item)
# 其他技巧(python分別新手和老手一看便知)
# 列表推導式
li3 = [i for i in range(10)] # 快速建立一個 0 ~ 9的列表
print(li3)
li4 = [i for i in range(100) if i % 2 == 0] # 快速建立一個列表,0~99內的偶數
print(li4)
li5 = [i * 10 for i in range(1, 10)] # 建立一個列表其元素爲 10,20,30,40....90
print(li5)