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)

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

/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!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,036评论 1 19
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,545评论 1 118
  • 是誰說抬起頭 淚就不會流下
    YeeCheng1218阅读 172评论 0 1
  • HTML结构 Css样式 Js代码 特效展示
    西巴撸阅读 333评论 0 0