Python列表常用操作

準備

控制臺輸入 ipython

parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec  4 2017, 14:50:18) Type "copyright", "credits" or "license" for more information.IPython 2.4.1 -- An enhanced Interactive Python.?         -> Introduction and overview of IPython's features.%quickref -> Quick reference.help      -> Python's own help system.object?   -> Details about 'object', use 'object??' for extra details.In [1]: 

定義列表

定義一個空白列表 name_list,

In [2]: name_list = []In [3]: 

列表常用操作

在控制臺輸入 name_list.,然后按 tap鍵補全,

In [3]: name_list.name_list.append   name_list.index    name_list.remove   name_list.count    name_list.insert   name_list.reverse  name_list.extend   name_list.pop      name_list.sort     In [3]: name_list.

從上面的提示中可以看出,列表共有9個操作或方法,而且也不需要進行死記硬背,需要用的時候通過上述方式得到提示,然后只要我們認得單詞,基本上就知道怎么操作了。

取值和取索引

取值

建立一個空白文檔(名字自定),<mark style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial;">hm01列表基本使用.py</mark>,先定義一個列表 name_list,如果我們想知道列表某個位置的值是什么,可以通過傳入 [1]參數獲得對應的值,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi['zhangsan', 'lisi', 'wangwu']Process finished with exit code 0

我們可以看到,列表的第二個值是 lisi。

取索引

如果我們想知道一個值對應的索引位置,可以通過 index方法傳入字符串參數,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', 'lisi', 'wangwu']Process finished with exit code 0

wangwu在列表中對應的索引值是2.

修改

如果想修改列表中的值,可以通過 name_list[1]="李四"的方式進行修改,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '李四', 'wangwu']Process finished with exit code 0

已經將列表的 lisi改成 李四。

添加

img

那么以上哪一個函數是添加呢? name_list.append是追加; name_list.insert是插入; name_list.extend是擴展; 我們逐一進行學習,

append追加

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '李四', 'wangwu', '王小二']Process finished with exit code 0

我們可以看出,在列表的末尾追加一個 王小二。

insert插入

img

先看一下 insert的用法, self因為暫時沒有學習,可以先忽略, index表示從哪個位置插入, object表示要插入的對象,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")print(name_list)

執(zhí)行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '小美眉', '李四', 'wangwu', '王小二']Process finished with exit code 0

insert方法可以在制定的索引位置插入字符串。

extend擴展

先看一下 extend方法的參數, self先忽略, iterable表示可以將包含一組數據的數據類型,都可以當參數傳遞進來,

img

那么我們先準備一個臨時列表,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")temp_list = ["孫悟空","豬二哥","沙師弟"]name_list.extend(temp_list)print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '小美眉', '李四', 'wangwu', '王小二', '孫悟空', '豬二哥', '沙師弟']Process finished with exit code 0

name_list列表的最后插入了 temp_list列表,這個就是 expend擴展的用法。

刪除

img

哪一個方法可以刪除呢? remove刪除; pop彈出 clear清除、清空;

remove刪除

我們先看一下目前控制臺中輸出的字符串,
img

我們再看一下 remove的用法,

img

object表示要刪除的對象,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")temp_list = ["孫悟空","豬二哥","沙師弟"]name_list.extend(temp_list)# 5.刪除name_list.remove("wangwu")print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '小美眉', '李四', '王小二', '孫悟空', '豬二哥', '沙師弟']Process finished with exit code 0

李四王小二之間的 wangwu被刪除了。

img

pop

我們先看一下 pop的用法,

img

pop方法是可以帶參數,那么我們先試一下不帶參數的效果,

不帶參數
name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")temp_list = ["孫悟空","豬二哥","沙師弟"]name_list.extend(temp_list)# 5.刪除name_list.remove("wangwu")name_list.pop()print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '小美眉', '李四', '王小二', '孫悟空', '豬二哥']Process finished with exit code 0

列表末尾的 沙師弟被刪除。

帶參數
img

不帶參數默認刪除最后一個,如果帶參數則會刪除制定索引位置的數據,比如我們想刪除 王小二,那么索引 index=3

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")temp_list = ["孫悟空","豬二哥","沙師弟"]name_list.extend(temp_list)# 5.刪除name_list.remove("wangwu")name_list.pop()name_list.pop(3)print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2['zhangsan', '小美眉', '李四', '孫悟空', '豬二哥']Process finished with exit code 0

王小二被刪除。

clear清除

我們先看一下 clear的用法,

img

我們可以看到, clear只有一個 self參數,可以忽略,

name_list = ["zhangsan","lisi","wangwu"]# 1.取值print(name_list[1])# 2.取索引print(name_list.index("wangwu"))# 3.修改name_list[1] = "李四"# 4.增加name_list.append("王小二")name_list.insert(1,"小美眉")temp_list = ["孫悟空","豬二哥","沙師弟"]name_list.extend(temp_list)# 5.刪除name_list.remove("wangwu")name_list.pop()name_list.pop(3)name_list.clear()print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_01_列表的基本使用.pylisi2[]Process finished with exit code 0

整個列表被清空。

擴展

使用 del從列表中刪除數據,

建立空白文本

新建空白文本<mark style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial;">hm02del關鍵字.py</mark>,定義一個 name_list列表,

name_list = ["張三","李四","王五"]print(name_list)

del刪除指定數據

在代碼中加入 del關鍵字,刪除指定的數據,

name_list = ["張三","李四","王五"]del name_list[1]print(name_list)

運行程序,控制臺輸出如下,

/home/parallels/Desktop/05_高級數據類型/venv/bin/python /home/parallels/Desktop/05_高級數據類型/hm_02_del關鍵字.py['張三', '王五']Process finished with exit code 0

已經將 index=1的數據刪除, del關鍵字本質上是用來將一個變量從內存中刪除的。

del刪除內存數據演示

先定義一個 name變量,然后用 del關鍵字把 name變量刪除,同時在第7行打一個斷點,

img

運行程序,我們再控制臺觀察輸出,
img

程序停在了第7行,同時 name=“小明”,緊接著單步執(zhí)行,

img

控制臺輸出如下,
img

name變量已經被刪除,那么這時候還能通過 print打印 name嗎?我們嘗試一下,

name_list = ["張三","李四","王五"]del name_list[1]name = "小明"del nameprint(name)print(name_list)

運行程序,執(zhí)行結果如下,
img

程序報錯, NameError:name'name'isnotdefined,說明 name變量已經完全從內存中刪除。

最近喜歡上了Python,每天學習一點點! 人生苦短,我用Python!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,537評論 1 19
  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,803評論 1 118
  • 是誰說抬起頭 淚就不會流下
    YeeCheng1218閱讀 193評論 0 1
  • HTML結構 Css樣式 Js代碼 特效展示
    西巴擼閱讀 364評論 0 0

友情鏈接更多精彩內容