Python基本數據類型之列表
學習Python的列表類型需要了解和掌握什麽是列表、列表的可變性、列表的訪問、列表的增刪改查等操作~
1.了解列表
list1 = [‘abc‘, 123, {1, 2, 3},[2,3]]
- Python中的列表有點類似與C語言中的數組的概念;
- python中的列表是可變的,且列表內部由元素組成,元素可以是任意對象,也就是說列表的數據項不需要具有相同的類型,比如整形、浮點型、字符串、其他類的對象、實例等都可以作為列表的元素。
2.列表的定義
下面是4種定義列表的方法:
lst = list() #定義一個空列表 lst = [] #定義一個空列表 lst = [1,2,3.5,‘abc‘] #元素可以是任意數據類型 lst = list(range(10)) #定義一個從0到9的列表
3.列表的可變性
a = 1
print(id(a)) #輸出:262330544
a = 2
print(id(a)) #輸出:262330560
- 列表的可變與不可變性,是對內存地址而言的;
- 被初始化的列表,可以通過列表的API接口對列表的元素進行增刪改查;
4.列表的訪問
列表是有序集合,所以列表可以通過索引訪問
lst = [1,2,3,4,5] #初始化一個列表lst
- 通過索引訪問列表裏面的值,列表名[索引大小](索引是從0開始計算的);
print(lst[1]) #輸出2
- 通過index方法獲取值對應的索引,列表名.index(值);
print(lst.index(4)) #輸出 3
- 通過count方法獲取值在列表中出現的次數,列表名.count(值);
print(lst.count(2)) #輸出1
通過len()函數獲取列表的長度,len(列表名);
print(len(lst)) #輸出5
#### **5.列表的插入**
lst = [1,2,3,4,5] #初始化一個列表
* **append方法**:在列表的末尾插入數據;
lst.append(5)
print(lst) 輸出[1, 2, 3, 4, 5, 5]
* **insert方法**:在列表的任意位置插入數據;
lst.insert(0, 100)
print(lst) 輸出[100, 1, 2, 3, 4, 5]
* **extend方法**:添加可叠代對象的元素;
lst.extend(range(10))
print(lst) 輸出[1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
* `+`:疊加兩個列表元素;
lst_new = lst + [1,2,3]
print(lst_new) 輸出 [1, 2, 3, 4, 5, 1, 2, 3]
* `*`:復制列表元素;
lst_new = lst * 3
print(lst_new) 輸出 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
#### **6.列表的刪除**
lst = [1,2,3,4,5] #初始化一個列表
* **remove方法**:移除從左自右的第一個匹配的元素;
lst.remove(3)
print(lst) 輸出[1, 2, 4, 5]
* **pop方法**:帶值的情況下,移除指定索引的元素,在不帶值的情況下,移除最後一個元素;
lst.pop(2)
print(lst) 輸出[1, 2, 4, 5]
lst.pop()
print(lst) 輸出[1, 2, 3, 4]
* **clear方法**:清空整個列表;
lst.clear()
print(lst) 輸出[]
#### **7.列表的排序**
lst = [1,2,3,4,5] #初始化一個列表
* **reverse方法**:將列表中的元素反向;
lst.reverse()
print(lst) 輸出[5, 4, 3, 2, 1]
* **sort方法**:給元素排序,(註:reverse控制指定是正向還是反向,默認是False,代表升序);
lst.sort()
print(lst) 輸出[1, 2, 3, 4, 5]
lst.sort(reverse=True)
print(lst) 輸出[5, 4, 3, 2, 1]
* **in 關鍵字**:判斷元素是否在列表裏面;
if 1 in lst:
print(‘yes‘) 輸出yes
#### **8.列表的復制**
lst = [1,[1,2,3],3,4,5]
lst_new = lst.copy()
print(lst_new) #輸出[1, [1, 2, 3], 3, 4, 5]
lst1 = 100
print(lst_new) #輸出[1, [1, 100, 3], 3, 4, 5]
* **淺拷貝**:如果改變原始列表的值,copy得到的新的列表的值會跟著改變;
import copy #導入一個copy模塊
lst = [1,[1,2,3],3,4,5]
lst_new = copy.deepcopy(lst)
print(lst_new) #輸出[1, [1, 2, 3], 3, 4, 5]
lst1 = 100
print(lst_new) #輸出[1, [1, 2, 3], 3, 4, 5]
* **深拷貝**:註意需要導入一個copy模塊,深拷貝和前拷貝相反,如果改變原始列表的值,copy得到的新的列表的值並不會跟著改變;
#### **9.random模塊**
import random #導入random模塊
print(random.randint(1,100)) #輸出1到99中任意一個整數
print(random.choice([‘x‘,3,5,7])) #輸出這四個元素中的任意一個
print(random.randrange(1,100,2)) #輸出1到99中的任意一個屬於 2n+1 的值
lst = [1,2,3,4,5]
random.shuffle(lst) #將lst列表打亂
print(lst)
* 需要導入一個**random模塊**;
* **randint**:取區間中任意一個值,註意區間是閉區間;
* **choice**:從給出列表中隨機取一個值;
* **randrange**:左邊是閉區間,右邊是開區間;
* **shuffle**:將列表打亂;
來源:https://segmentfault.com/a/1190000018207773
Python基本數據類型之列表