查看原文
其他

Python从零开始系列连载(10)——Python特色数据类型(列表)(下)

2017-10-09 王大伟 Python爱好者社区


作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei



前言

前文传送门:

Python从零开始系列连载(1)——安装环境

Python从零开始系列连载(2)——jupyter的常用操作

Python从零开始系列连载(3)——Python的基本数据类型(上)

Python从零开始系列连载(4)——Python的基本数据类型(下)

Python从零开始系列连载(5)——Python的基本运算和表达式(上)

Python从零开始系列连载(6)——Python的基本运算和表达式(下)

Python从零开始系列连载(7)——Python程序的基本控制流程(上)

Python从零开始系列连载(8)——Python程序的基本控制流程(下)

Python从零开始系列连载(9)——Python特色数据类型(列表)(上)


列表切片


列表切片指的是将列表的一部分切出来,有点像字符串切片

列表切片的形式是:

list[起始索引:终止索引(不包含):步长间隔]




还有一些特殊的切片省略:





我们来看个好玩的:




这说明什么?你好好思考我们之前讲过的id()函数


修改列表元素


列表是一种可变的数据类型,所以可以修改其内容




列表的一些方法

针对列表,可以有一些方法操作列表,这里的方法可以理解为函数



我们分别演示一下:


1.list.append( obj )

在列表末尾添加新的对象




2.list.count( obj )

统计某个元素在列表中出现的次数




这里分别统计了list1中字符串1和整型1出现的次数


3.list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)




extend添加单个元素和append很像,但他可以一次添加更多元素,元素可以是列表


4.list.index(obj)

从列表中找出某个值第一个匹配项的索引位置



在第一个索引位置就找到了值为1的元素


5.list.insert(index, obj)

将对象插入列表


index是插入的位置,obj是插入的内容




可以看出,我们指定的索引是2,最后‘a’插在了原来索引2的元素 3 的前面




当然,我们也可以插入一个列表


6.list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值




可以看出,执行这个方法有返回值,返回值是被删除的那个列表最后一个元素


我们也可以指定删除的索引




7.list.remove(obj)

移除列表中某个值的第一个匹配项




8.list.reverse()

反向列表中元素




和list4[::-1]效果一样


9.list.sort([func])

对原列表进行排序




字符串也是能比较大小的,你还记得么?不记得就去回顾字符串那节课:




这里默认为升序,如果我要逆序排列呢?



删除列表中的元素

del操作可以删除整个列表或者列表的子列表


指定索引 0 删除元素:




删除列表的字列表:




删除整个列表:




删除之后再次访问list1就报错了~


列表生成式(难点)


在Python的列表中,列表生成式体现了Python优雅的特色


如果让你生成一个列表,元素是1~10的平方,你会怎么生成?


可能,你会这样:




小明:老师!你讲错了!你只给了前五个的!




小明啊,不是老师错了,是老师懒啊,程序员都喜欢偷懒的,之后的规律大家都懂的,我就不打了


小红:老师!我有更好的想法


哦?你说说.


小红:老师,我们之前学了for循环,可以这样生成这个列表的:




小红:先建立个空列表,再每次循环将元素append()进去

最后就ok啦~\(≧▽≦)/~啦啦啦


小红真棒!小明你好好学习一下


不过,今天我们要打开新世界的大门了!!!




不要激动!小明,你怎么流鼻血了??




列表生成式来解决这一问题:




一行代码搞定!,是不是很优雅,哈哈




大家比较一下循环和列表生成式,发现列表生成式结构如下

[表达式 for i in 序列]


小明:老师!如果循环里是双层的,你还能用列表生成式?


这。。。当然可以!




其实,还有这些操作:

排列组合(其实相当于双层循环)




求出1~10中能被3整除的数的平方做成列表:

通过if来筛选符合条件的(就是循环里嵌套判断)




其实呢,你们刚学的列表生成式是Python高级编程的内容,但是你已经学会了

是不是感觉自己很棒棒啊!




今天作业是自己跟着操作一遍~

自己不敲代码永远学不会写代码


下课

人生苦短,我选Python

未完待续,连载中......

现在还坚持再看连载学习的你们真的很棒棒!

更多精彩干货请戳~~~

业务知识一站通,懂业务,让你从技术人才中脱颖而出!

陈老师基于咨询公司从业经验与8年25个项目经验,精心打造业务知识体系课程。

点击阅读原文立即学习

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

1.崔老师爬虫实战案例免费学习视频。

2.丘老师数据科学入门指导免费学习视频。

3.陈老师数据分析报告制作免费学习视频。

4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

5.丘老师Python网络爬虫实战免费学习视频。

 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存