關於Python列表的索引取值問題

2022-09-13 18:01:38

php零基礎到就業直播視訊課:進入學習

【相關推薦:Python3視訊教學

列表的索引取值

1. 列表的索引

和字串一樣,列表中的每一個元素也都有一個屬於自己的編號,這個編號就是列表的索引。

2. 列表索引取值

通過字串索引,我們可以取出字串中的元素。

通過列表索引,我們可以取出列表的元素。

【語法】

  • 列表名或者列表本身。
  • 英文中括號。
  • 索引。

3. 列表的正索引取值

# 新建一個str列表
str_list = ["當歸", "人蔘",  "黃芪"]

print(str_list[0])
print(str_list[1])
print(str_list[2])

【終端輸出】

當歸
人蔘
黃芪

正索引從左往右開始編號,編號從0開始!

str_list[0]取到列表的第1元素當歸
str_list[1]取到列表的第2元素人蔘
str_list[2]取到列表的第3元素黃芪

4. 列表的負索引取值

# 新建一個str列表
str_list = ["當歸", "人蔘",  "黃芪"]

print(str_list[-1])
print(str_list[-2])
print(str_list[-3])

【終端輸出】

黃芪
人蔘
當歸

負索引從右往左開始編號,編號從-1開始!

str_list[-1]取到列表的倒數第1元素黃芪
str_list[-2]取到列表的倒數第2元素人蔘
str_list[-3]取到列表的倒數第3元素當歸

負索引取值通常使用在不知道列表有幾個元素,或列表元素太多,你需要取倒數第n個元素的情況。

【溫馨提示】

重點注意區分正索引從0開始編號,而負索引從-1開始編號。

5. 用列表本身取值

print(["當歸", "人蔘",  "黃芪"][2])

【終端輸出】

黃芪

上述程式碼是直接從一個列表中取出列表的第3個元素。

這樣的方法很少用,瞭解即可。

6. 從巢狀列表中取值

【語法】

列表[索引][索引]

當需要從列表中的列表取值,即需要2次索引取值的時候,語法為列表[索引][索引]

巢狀列表就是指列表中還有列表,即列表的某個元素或某幾個元素的資料型別為列表。

  1. 列表[索引]從列表中取出含有身份證號碼的元素:
# 新建一個stu列表
stu_list = ["白敬亭",   ["聯絡方式", 19987658765] , ["身份證號",  533001199101023456]]

# 用正索引取出列表的第3個元素
print(stu_list[2])

# 用負索引取出列表的倒數第1個元素
print(stu_list[-1])

# 檢視取到的元素的資料型別
print("取到的元素資料型別為",type(stu_list[2]))
print("取到的元素資料型別為",type(stu_list[-1]))

【終端輸出】

['身份證號', 533001199101023456]
['身份證號', 533001199101023456]
取到的元素資料型別為 <class 'list'>
取到的元素資料型別為 <class 'list'>

觀察上述結果,取到的元素的資料型別為列表list

但這不是我想要的最終結果,我還想繼續取出他的身份證號碼,該如何操作呢?

2.列表[索引][索引]取出列表中的列表元素:

# 新建一個stu列表
stu_list = ["白敬亭",   ["聯絡方式", 19987658765] , ["身份證號",  533001199101023456]]

# 用正索引取出列表的第3個元素,然後取出第3個元素中的第2個元素
print(stu_list[2][1])

# 用負索引取出列表的倒數第1個元素,然後取出倒數第1個元素中的倒數第1個元素
print(stu_list[-1][-1])

# 檢視取到的元素的資料型別
print("取到的元素資料型別為",type(stu_list[2][1]))
print("取到的元素資料型別為",type(stu_list[-1][-1]))

【終端輸出】

533001199101023456
533001199101023456
取到的元素資料型別為 <class 'int'>
取到的元素資料型別為 <class 'int'>

stu_list[2]取到了列表stu_list中的第3個元素,即['身份證號', 533001199101023456]

stu_list[2][1]中的[2]先取到['身份證號', 533001199101023456]

後面的[1]取到了['身份證號', 533001199101023456]中的第2個元素,即533001199101023456

取到的資料型別為整數。

7. 課後練習

1.我的書包中有雨傘、手機、錢包;錢包中有銀行卡、公交卡、飯卡。

【題目要求】

  • 用一個列表儲存書包中的物品。
  • 用一個列表儲存錢包中的物品。
  • 編寫程式碼從書包列表中取出公交卡。

【參考答案】

# 新建一個錢包列表
qianbao = ["銀行卡", "公交卡", "飯卡"]

# 新建一個書包列表
shubao = ["雨傘", "手機", qianbao]

# 從書包中取出第3個元素qianbao,然後取出qianbao中的第2個元素公交卡
print(shubao[2][1])

【終端輸出】

公交卡

為了方便大家理解,上述列表名和列表中的元素我都用了中文。

2.取出下面列表中聯絡方式中的19987658765

# 新建一個stu列表
stu_list = ["白敬亭",   ["聯絡方式", [19987658765, 'xyz77520520']] , ["身份證號",  533001199101023456]]

【參考答案】

# 新建一個stu列表
stu_list = ["白敬亭",   ["聯絡方式", [19987658765, 'xyz77520520']] , ["身份證號",  533001199101023456]]

# 正索引取值
print(stu_list[1][1][1])

# 負索引取值
print(stu_list[-2][-1][-1])

# 檢視取到的元素的資料型別
print("取到的元素資料型別為",type(stu_list[1][1][1]))
print("取到的元素資料型別為",type(stu_list[-2][-1][-1]))

【終端輸出】

xyz77520520
xyz77520520
取到的元素資料型別為 <class 'str'>
取到的元素資料型別為 <class 'str'>

上面是3層列表巢狀(我自己起的名字),大家可以多寫幾個更復雜更多層的列表巢狀取值程式,體驗列表的多索引取值,有報錯的可以截圖或發原始碼給我。

8. 總結

列表的索引取值和字串取值語法一致,注意正索引編號從0開始即可。

本節重點掌握多次索引取值的語法:列表[索引][索引]

列表取值程式設計中經常用到,需要重點掌握。

【相關推薦:Python3視訊教學

以上就是關於Python列表的索引取值問題的詳細內容,更多請關注TW511.COM其它相關文章!