在家做網(wǎng)站目前最火的推廣平臺
目錄
正向索引:
反向索引:
嵌套列表:
?修改列表中的值
列表常用的方法
實例
練習(xí):
正向索引:
從0開始,依次遞增。第一個元素的索引為0,第二個元素的索引為1,依此類推。
列表的下標(biāo)索引(正向)
例如:
fruits = ['apple', 'banana', 'cherry']
print(fruits[0]) # 輸出 'apple'
print(fruits[1]) # 輸出 'banana'
反向索引:
從-1開始,依次遞減。最后一個元素的索引為-1,倒數(shù)第二個元素的索引為-2,以此類推。
列表的下標(biāo)索引(反向)
例如:
print(fruits[-1]) # 輸出 'cherry'
print(fruits[-2]) # 輸出 'banana'
嵌套列表:
最底層的列表被標(biāo)記為"元素0"、"元素1"、"元素0"和"元素1",這些元素分別屬于兩個不同的列表,即"列表(list)"0和"列表(list)"1。這兩個列表又作為元素存在于最上層的"列表(list)"中。
# 創(chuàng)建一個嵌套列表
nested_list = [[1, 2], [3, 4]]# 訪問嵌套列表中的元素
print(nested_list[0][0]) # 輸出: 1
print(nested_list[0][1]) # 輸出: 2
print(nested_list[1][0]) # 輸出: 3
print(nested_list[1][1]) # 輸出: 4
最底層的列表被標(biāo)記為"元素0"、"元素1"、"元素0"和"元素1",這些元素分別屬于兩個不同的列表,即"列表(list)"0和"列表(list)"1。這兩個列表又作為元素存在于最上層的"列表(list)"中。
線性表(常見的線性表-----數(shù)組 棧 隊列 鏈表) ---- 基于鏈表的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的
注意:python里面是沒有數(shù)組的 數(shù)組的存儲空間是連續(xù)的,它刪除比較麻煩,因為內(nèi)存是連續(xù)的,查詢速度特別快(因為是連續(xù)的)-----------增刪改的效率比較低
棧:先進后出,后進先出
隊列:先進先出,后進后出
鏈表(比較特殊的數(shù)據(jù)結(jié)構(gòu)):(只有一個6byte的空間,但是要存8byte的數(shù)組,肯定是不夠的,所以是有很多零碎的內(nèi)存塊,科學(xué)家就使用線將各種零碎的內(nèi)存塊連接起來)
單向鏈表:節(jié)約內(nèi)存
沒有頭節(jié)點,只有尾節(jié)點
雙向鏈表
一般有三個節(jié)點,第一個節(jié)點存上一個節(jié)點的地址(頭指針),中間的存儲數(shù)據(jù),最后一個存下一個節(jié)點的內(nèi)存(尾指針)
Python中的列表就是基于雙向鏈表實現(xiàn)的(查詢慢,增刪快)
-
定義
由弱數(shù)據(jù)類型語言決定,直接賦值給變量
如: ls = [ 2,3,4,5 ]
使用全局函數(shù)list對列表進行定義
ls = list() ?ls = list([1,2,3,4,5,""]) ?#容器中的每一個值,我們叫做元素
-
如何訪問元素
使用下標(biāo)來訪問,注意下標(biāo)是從0開始的(外國人喜歡從0開始計數(shù)) ls[0] 如果下標(biāo)超過范圍會報異常, 可以用下標(biāo)來訪問值,也可以修改值,另外下標(biāo)也可以是負數(shù)
求列表的長度?
全局函數(shù)len(容器) -----------返回容器的長度
-
如何遍歷容器
For循環(huán)For i in ls:Print(i) ?While循環(huán)Index = 0While index < len(ls):Print(ls[index])Index += 1
?修改列表中的值
示例 1:修改列表中特定位置的值
假設(shè)有一個列表,你想修改其中某個位置的元素。
fruits = ['apple', 'banana', 'cherry'] # 修改索引為1的元素,即把'banana'改為'orange' fruits[1] = 'orange' print(fruits) # 輸出: ['apple', 'orange', 'cherry']
示例 2:遍歷列表并修改所有值
如果想要基于某種條件或運算修改列表中的每一個元素,可以遍歷列表。
numbers = [1, 2, 3, 4, 5] # 將列表中的每個元素都平方 for i in range(len(numbers)):numbers[i] = numbers[i] ** 2 print(numbers) # 輸出: [1, 4, 9, 16, 25]
或者使用列表推導(dǎo)式更簡潔地實現(xiàn)同樣的功能:
numbers = [1, 2, 3, 4, 5] squared_numbers = [x ** 2 for x in numbers] print(squared_numbers) # 輸出: [1, 4, 9, 16, 25]
示例 3:修改嵌套列表中的值
對于嵌套列表(列表中的列表),你需要通過兩層索引來訪問和修改內(nèi)部列表的元素。
nested_list = [[1, 2], [3, 4]] # 修改嵌套列表中第二個列表的第一個元素 nested_list[1][0] = 'changed' print(nested_list) # 輸出: [[1, 2], ['changed', 4]]
列表常用的方法
方法名 | 含義 |
---|---|
append() | 向列表尾部追加元素 |
insert(index, object) | 向指定的位置追加元素 |
sort() | 列表排序(只能排Int)字母按照ASCII值進行排序,類型不能混淆 |
index() | 查找元素第一次在列表中出現(xiàn)的位置,如果沒有這個元素則會 |
reverse() | 將列表元素順序翻轉(zhuǎn) |
remove() | 通過元素來移除元素,如果元素不存在則拋出異常 |
count() | 統(tǒng)計元素在列表中的個數(shù) |
clear() | 清除元素 |
copy() | 淺拷貝對象(拷貝) 不等價于 = (引用傳遞),在堆內(nèi)存中進行對象拷貝 |
extend() | 合并列表 |
pop() | 與append()相反,刪除列表最后一個元素,并返回值這個元素,要刪除指定位置的元素,用pop(i) 方法,其中i 是索引位置 |
實例
下面是一些關(guān)于如何使用 Python 列表方法的例子:
append()
?方法:向列表尾部追加元素。
my_list = [1, 2, 3]
my_list.append(4) # 添加元素 4 到列表末尾
print(my_list) # 輸出: [1, 2, 3, 4]
insert(index, object)
?方法:向指定的位置追加元素。
my_list = [1, 2, 3, 4, 5]
my_list.insert(2, "new_element") # 在索引 2 的位置插入元素
print(my_list) # 輸出: [1, 2, 'new_element', 3, 4, 5]
sort()
?方法:列表排序(只能排Int)字母按照ASCII值進行排序,類型不能混淆。
my_list = [5, 1, 9, 3, 7]
my_list.sort() # 對列表進行升序排列
print(my_list) # 輸出: [1, 3, 5, 7, 9]# 注意:對于非數(shù)字類型的元素,需要自定義比較函數(shù)或使用 sorted() 函數(shù)
index(element)
?方法:查找元素第一次在列表中出現(xiàn)的位置,如果沒有這個元素則拋出異常。
my_list = [1, 2, 3, 4, 5]
print(my_list.index(3)) # 輸出: 2
reverse()
?方法:將列表元素順序翻轉(zhuǎn)。
my_list = [1, 2, 3, 4, 5]
my_list.reverse()
print(my_list) # 輸出: [5, 4, 3, 2, 1]
remove(element)
?方法:通過元素來移除元素,如果元素不存在則拋出異常。
my_list = [1, 2, 3, 4, 5]
my_list.remove(3) # 移除元素 3
print(my_list) # 輸出: [1, 2, 4, 5]
count(element)
?方法:統(tǒng)計元素在列表中的個數(shù)。
my_list = [1, 2, 3, 2, 1]
print(my_list.count(2)) # 輸出: 2
clear()
?方法:清除元素。
my_list = [1, 2, 3, 4, 5]
my_list.clear()
print(my_list) # 輸出: []
copy()
?方法:淺拷貝對象(拷貝)不等于 = (引用傳遞),在堆內(nèi)存中進行對象拷貝。
my_list = [1, 2, 3]
copied_list = my_list.copy()
print(copied_list) # 輸出: [1, 2, 3]
extend(iterable)
?方法:合并列表。
my_list1 = [1, 2, 3]
my_list2 = [4, 5, 6]
my_list1.extend(my_list2)
print(my_list1) # 輸出: [1, 2, 3, 4, 5, 6]
pop([index])
?方法:與append()相反,刪除列表最后一個元素,并返回值這個元素,要刪除指定位置的元素,用pop(i)方法,其中i是索引位置。
my_list = [1, 2, 3, 4, 5]
print(my_list.pop()) # 輸出: 5
print(my_list) # 輸出: [1, 2, 3, 4]my_list.pop(2) # 刪除索引為 2 的元素
print(my_list) # 輸出: [1, 2, 4]
練習(xí):
使用Python列表實現(xiàn)學(xué)生年齡管理
在本篇博客中,我們將探討如何使用Python的列表功能來處理與學(xué)生年齡相關(guān)的一系列任務(wù)。以下是我們的目標(biāo):
- 定義一個學(xué)生年齡列表。
- 在列表末尾追加元素。
- 向列表末尾追加另一個列表。
- 獲取列表的第一個和最后一個元素。
- 查找指定元素在列表中的索引位置。
- 對列表進行排序。
初始化一個包含若干學(xué)生年齡的列表:
student = [21, 25, 21, 23, 22, 20]
模擬新學(xué)生加入班級的情景,我們使用append()
方法向列表尾部添加一名31歲的學(xué)生年齡:
student.append(31)
print(student) # 輸出當(dāng)前列表狀態(tài)
# 輸出: [21, 25, 21, 23, 22, 20, 31]
如果有多個學(xué)生同時加入,可以利用extend()
方法將一個包含多個人年齡的列表合并進來。這里,新增了三位學(xué)生,年齡分別為29、33、30歲:
student_new = [29, 33, 30]
student.extend(student_new)
print(student) # 輸出: [21, 25, 21, 23, 22, 20, 31, 29, 33, 30]
在管理過程中,可能需要移除列表中的元素。這里,分別移除了最年輕(索引為0)和最新加入(索引為-1)的學(xué)生年齡,并打印移除的值:
num = student.pop(0) # 輸出: 21 (移除并打印元素)
print(num)
num = student.pop(-1) # 輸出: 30 (移除并打印元素)
print(num)
為了查找特定學(xué)生年齡的位置,比如剛加入的31歲學(xué)生,我們使用index()
方法獲取其索引:
print(student.index(31)) # 輸出: 6 (顯示31在列表中的索引位置)
最后,為了便于分析或進一步處理,對整個年齡列表進行排序,保持?jǐn)?shù)據(jù)有序:
student.sort()
print(student) # 輸出: [20, 21, 21, 22, 23, 25, 29, 31, 33] (列表按升序排列)