Python基礎之列表的知識,包括列表初識,列表常用方法及列表其他擴展。列表初識包括 列表的作用和定義,列表存儲和取數據;列表方法 包括列表方法查看,列表常用方法統計,列表取值和取索引,列表 修改,列表增加,列表刪除數據,del關鍵字刪除,列表統計,列表的升降序和逆序;列表其他擴展 包括 關鍵字,函... ...
列表初識
列表的作用和定義
列表是python中使用最頻繁的數據類型,在其他語言中一般稱為數組;
用一個變數存儲多個數據;
列表存儲多個數據時,在中括弧之間用逗號分隔多個數據;
語法定義:
變數名 = [數據1, 數據2, 數據3,...]
eg:
name_list = ["zhangsan", "lisi", "wangwu"]
列表存儲數據的方式和取數據
- 列表按順序存儲數據,從0開始,逐漸遞增的存,你可以理解為琅琊榜中琅琊閣的信息櫃,一個一個存過去,並且給柜子從0開始編號,每次+1;
- 取數據的時候只需要按照柜子編號取即可;
- 列表的索引從0開始,索引就是數據在列表中的數據編號,索引又可以被稱為下標。從列表中取值時,如果超出索引範圍,就會報錯。
定義和取數據示例如下(在互動式下):
name_list = ["zhangsan", "lisi", "wangwu"]
name_list
['zhangsan', 'lisi', 'wangwu']
name_list[0]
'zhangsan'
name_list[1]
'lisi'
列表方法
列表方法查看
在ipython3互動式下,先定義一個空列表;再 空列表. 後面敲一下tab鍵,即可顯示列表常用方法;例如:
In [1]: name_list = []
In [2]: name_list.
name_list.append name_list.count name_list.insert name_list.reverse
name_list.clear name_list.extend name_list.pop name_list.sort
name_list.copy name_list.index name_list.remove
In [2]: name_list.
由此可見,列表方法有如下這些:
name_list.append name_list.count name_list.insert name_list.reverse
name_list.clear name_list.extend name_list.pop name_list.sort
name_list.copy name_list.index name_list.remove
列表常用方法統計
序號 | 分類 | 關鍵字/函數/方法 | 說明 |
---|---|---|---|
1 | 增加 | list.insert(index, data) | 在指定位置插入數據 |
list.append(data) | 在末尾追加數據 | ||
list.extend(list2) | 將列表2的數據追加到列表 | ||
2 | 修改 | list[index]=data | 修改指定索引的數據 |
3 | 刪除 | del list[index] | 刪除指定索引的數據 |
list.remove(data) | 刪除第一個出現的指定數據 | ||
list.pop() | 刪除末尾數據 | ||
list.pop(index) | 刪除指定索引數據 | ||
list.clear() | 清空列表 | ||
4 | 統計 | len(list) | 測量列表長度 |
list.count(data) | 檢查數據在列表中出現的次數 | ||
5 | 排序 | list.sort() | 升序排序 |
list.sort(reverse=True) | 降序排序 | ||
list.reverse() | 逆序,反轉 |
列表取值和取索引(index)
name_list = ["zhangsan", "lisi", "wangwu"]
# 列表取值,已知 內容在列表的位置(索引),根據索引來取值;註意,如果索引值超過範圍的話,就會報錯
print(name_list[2])
# 列表取索引,已知 內容,根據內容來確定內容在列表的位置;
# 註意,如果查的內容不是列表中的內容的話,就會報錯
print(name_list.index("lisi"))
列表 修改指定索引的數據
name_list = ["zhangsan", "lisi", "wangwu"]
# 修改指定索引的數據;註意,如果索引超過了範圍,就會報錯,而不是在末尾新建一個數據,那是append該做的事
name_list[2] = "wangliu"
print(name_list)
列表增加(append,insert,extend)
1.append
name_list = ["zhangsan", "lisi", "wangwu"]
# 3.1 append 在列表末尾追加
name_list.append("liudi")
print(name_list) # ['zhangsan', 'lisi', 'wangwu', 'liudi']
2.insert
name_list = ["zhangsan", "lisi", "wangwu"]
#3.2 insert 向列表指定索引位置添加數據,註意,不是進行替換,只是擠進去而已
print(name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.insert(1, "xiaoming")
print(name_list) # ['zhangsan', 'xiaoming', 'lisi', 'wangwu']
3.extend
# 3.3 extend 向列表末尾分散的追加另一個列表的所有內容,註意是分散的追加
hero_list = ["hanxin", "zhangfei", "zhuge"]
print(name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.extend(hero_list)
print(name_list) # ['zhangsan', 'lisi', 'wangwu', 'hanxin', 'zhangfei', 'zhuge']
列表刪除數據(remove,pop,clear)
1.remove
name_list = ["zhangsan", "lisi", "wangwu"]
# 4.1 remove 刪除列表中指定的數據,註意,輸入的要刪除的數據必須在列表內,否則會報錯
# 如果列表中存在兩個相同的元素時,remove方法會刪除第一個出現的元素
print(name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.remove("zhangsan")
print(name_list) # ['lisi', 'wangwu']
2.pop
name_list = ["zhangsan", "lisi", "wangwu"]
# 4.2 pop 預設刪除列表最後一個數據,也可以刪除指定索引的數據,指定索引時,不能超過範圍,否則報錯
print(name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.pop()
print(name_list) # ['zhangsan', 'lisi']
name_list.pop(2)
print(name_list) # ['lisi']
3.clear
name_list = ["zhangsan", "lisi", "wangwu"]
# 4.3 clear 清空列表
print(name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.clear()
print(name_list) # []
del關鍵字刪除列表元素和del註意事項
name_list = ["zhangsan", "lisi", "wangwu"]
# 使用del關鍵字可以刪除列表中的元素;但在日常開發中,如果要刪除列表中的元素,建議使用列表提供方法。
del name_list[1]
print(name_list) # ['zhangsan', 'wangwu']
# del關鍵字的本質是將變數從記憶體中刪除
name = "xiaoming"
print(name)
del name
# print(name) # del將變數刪除後,變數就無效了,不能再被調動,否則報錯,所以本行必須被刪除
列表統計(len,count)
1.len
name_list = ["zhangsan", "lisi", "wangwu"]
# len 統計列表中元素的個數
list_num1 = len(name_list)
print("列表中元素的個數為:", list_num1)
name_list.append("zhangsan")
list_num2 = len(name_list)
print("列表中元素的個數為:", list_num2)
2.count
name_list = ["zhangsan", "lisi", "wangwu"]
# count 統計列表中某一元素出現的個數
times = name_list.count("zhangsan")
print("列表中zhangsan出現的次數為:", times)
列表的升降序和逆序(反轉) (sort,reverse)
升序sort
name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]
name_list.sort()
print("升序後姓名列表:", name_list) # ['lisi', 'wangwu', 'zhangsan']
print("升序前數字列表:", num_list) # [2, 4, 1, 3, 8]
num_list.sort()
print("升序後數字列表:", num_list) # [1, 2, 3, 4, 8]
降序sort
name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]
print("降序前姓名列表:", name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.sort(reverse=True)
print("降序後姓名列表:", name_list) # ['zhangsan', 'wangwu', 'lisi']
print("降序前數字列表:", num_list) # [2, 4, 1, 3, 8]
num_list.sort(reverse=True)
print("降序後數字列表:", num_list) # [8, 4, 3, 2, 1]
逆序reverse
name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [2, 4, 1, 3, 8]
print("逆序前姓名列表:", name_list) # ['zhangsan', 'lisi', 'wangwu']
name_list.reverse()
print("逆序後姓名列表:", name_list) # ['wangwu', 'lisi', 'zhangsan']
print("逆序前數字列表:", num_list) # [2, 4, 1, 3, 8]
num_list.reverse()
print("逆序後數字列表:", num_list) # [8, 3, 1, 4, 2]
應註意,無論是升降序還是逆序,都是直接對原列表做修改的,而不是臨時修改
列表其他擴展
關鍵字,函數和方法的區別
關鍵字
關鍵字是Python內置的,具有特殊意義的標識符;
關鍵字比如del,直接使用,後面無需括弧。
import keyword
print(keyword.kwlist)
"""
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue','def', 'del',
'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda',
'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
"""
函數
函數封裝了獨立功能,可以直接調用;
函數的調用:
# 函數名(參數)
例如:print("hello world")
方法
方法和函數類似,封裝了獨立功能;
與函數不同的是,方法需要通過對象調用,表示針對這個對象要做的操作。
方法的使用:
# 對象.方法名()
例如:namelist.pop()
迴圈遍歷
列表遍歷就是 從頭到尾 依次從列表中取數據;
每次迴圈都將 從列表中順序的讀取出來的數據放在臨時變數中,然後執行相同的操作。
使用for進行迭代遍歷。
遍歷語法格式:
for 臨時變數 in 列表:
針對臨時變數進行的操作
遍歷示例:
name_list = ["zhangsan", "lisi", "wangwu"]
for i in name_list:
print("本次讀取的名字為:", i)
列表的應用場景
雖然python的列表可以存儲不同的數據類型,比如同時存儲字元串和數字;但在實際開發中,通常都是存儲的同一類數據類型,然後通過迭代遍歷列表中的數據,做相同的操作。