上一期学习了Python特色数据类型(列表)上半节,相信大家都已经熟悉啦,我们这一期就来学习Python特色数据类型(列表)下半节吧!可以在历史送查看!
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是插入的内容
5.对列表元素循环
使用方法:
for 变量 in 列表:
print(变量)
可以看出,我们指定的索引是2,最后‘a’插在了原来索引2的元素 3 的前面
当然,我们也可以插入一个列表
6.list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
可以看出,执行这个方法有返回值,返回值是被删除的那个列表最后一个元素
我们也可以指定删除的索引
7.list.remove(obj)
移除列表中某个值的第一个匹配项
8.list.reverse()
反向列表中元素
和list4[::-1]效果一样
9.list.sort([func])
对原列表进行排序
字符串也是能比较大小的,你还记得么?不记得就去回顾字符串那节课:
这里的‘1’是字符串,而不是整形,要注意,整形和字符串是无法比较的
这里默认为升序,如果我要逆序排列呢?
删除列表中的元素
del操作可以删除整个列表或者列表的子列表
指定索引 0 删除元素:
删除列表的字列表:
删除整个列表:
删除之后再次访问list1就报错了~
列表生成式(难点)
在Python的列表中,列表生成式体现了Python优雅的特色
如果让你生成一个列表,元素是1~10的平方,你会怎么生成?
可能,你会这样:
小明:老师!你讲错了!你只给了前五个的!
小明啊,不是老师错了,是老师懒啊,程序员都喜欢偷懒的,之后的规律大家都懂的,我就不打了
小红:老师!我有更好的想法
哦?你说说.
小红:老师,我们之前学了for循环,可以这样生成这个列表的:
小红:先建立个空列表,再每次循环将元素append()进去
最后就ok啦~\(≧▽≦)/~啦啦啦
小红真棒!小明你好好学习一下
不过,今天我们要打开新世界的大门了!!!
列表生成式来解决这一问题:
一行代码搞定!,是不是很优雅,哈哈
大家比较一下循环和列表生成式,发现列表生成式结构如下
[表达式 for i in 序列]
小明:老师!如果循环里是双层的,你还能用列表生成式?
这。。。当然可以!
其实,还有这些操作:
排列组合(其实相当于双层循环)
求出1~10中能被3整除的数的平方做成列表:
通过if来筛选符合条件的(就是循环里嵌套判断)
其实呢,你们刚学的列表生成式是Python高级编程的内容,但是你已经学会了
是不是感觉自己很棒棒啊!
领取专属 10元无门槛券
私享最新 技术干货