Python基本數據類型之列表

學習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.列表的訪問

列表是有序集合,因此列表能夠經過索引訪問app

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]

  lst[1][1] = 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]

  lst[1][1] = 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:將列表打亂;
相關文章
相關標籤/搜索