關於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!