美文网首页Python入门
Python列表常用操作

Python列表常用操作

作者: 学知不足 | 来源:发表于2018-02-13 22:55 被阅读0次

    准备

    控制台输入 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)
    
    

    执行程序,控制台输出如下,

    /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=“小明”,紧接着单步执行,

    img 控制台输出如下, img

    name变量已经被删除,那么这时候还能通过 print打印 name吗?我们尝试一下,

    name_list = ["张三","李四","王五"]del name_list[1]name = "小明"del nameprint(name)print(name_list)
    
    
    运行程序,执行结果如下, img

    程序报错, NameError:name'name'isnotdefined,说明 name变量已经完全从内存中删除。

    最近喜欢上了Python,每天学习一点点! 人生苦短,我用Python!

    相关文章

      网友评论

        本文标题:Python列表常用操作

        本文链接:https://www.haomeiwen.com/subject/tmystftx.html