1. 程式人生 > >Python基本數據類型之列表

Python基本數據類型之列表

學習python 註意 操作 概念 出現的次數 尾插 xtend random模塊 整數

學習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基本數據類型之列表