關於Python列表的常用操作你會多少?

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]:

定義列表

Advertisements

定義一個空白列表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個操作或方法,而且也不需要進行死記硬背,需要用的時候通過上述方式得到提示,然後只要我們認得單詞,基本上就知道怎麼操作了。

Advertisements

取值和取索引

取值

建立一個空白文檔(名字自定),hm_01_列表基本使用.py,先定義一個列表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改成李四。

添加

那麼以上哪一個函數是添加呢?

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插入

先看一下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)

執行程序,控制台輸出如下,

/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表示可以將包含一組數據的數據類型,都可以當參數傳遞進來,

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

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擴展的用法。

刪除

哪一個方法可以刪除呢?

remove刪除;

pop彈出

clear清除、清空;

remove刪除

我們先看一下目前控制台中輸出的字元串,

我們再看一下remove的用法,

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被刪除了。

pop

我們先看一下pop的用法,

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

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

帶參數

不帶參數默認刪除最後一個,如果帶參數則會刪除制定索引位置的數據,比如我們想刪除王小二,那麼索引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的用法,

我們可以看到,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從列表中刪除數據,

建立空白文本

新建空白文本hm_02_del關鍵字.py,定義一個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行打一個斷點,

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

程序停在了第7行,同時name = 「小明」,緊接著單步執行,

控制台輸出如下,

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

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

運行程序,執行結果如下,

程序報錯,NameError: name 'name' is not defined,說明name變數已經完全從內存中刪除。

最近喜歡上了Python,每天學習一點點!

人生苦短,我用Python!

Advertisements

你可能會喜歡