Python-列表总结(操作符、方法、内置函数、相关模块)_列表类型的操作 操作符、操作函数和操作方法

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

l = [1,2.2,‘lady_killer’,[4,5],True]
l
[1, 2.2, ‘lady_killer’, [4, 5], True]

带着[],是不是感觉很烦呀,你可以这样:

print(*l)
1 2.2 lady_killer [4, 5] True

print(l)和print(*l)为什么会不一样?这就要提到函数了,可以看:Python-函数基础总结与内置函数

索引

正索引01234
内容12.2‘lady_killer’[4,5]True
负索引-5-4-3-2-1

操作符

访问与更新(序列操作符切片)

上一篇文章重复的单个元素访问、获取连续元素、反转等不再赘述。

更新使用赋值操作符即可。

l[0]=10
l
[10, 2.2, ‘lady_killer’, [4, 5], True]

判断元素是否存在(成员关系操作in,not in)

2.2 in l
True

3.3 in l
False

拼接列表(连接操作符+)

只能是列表和列表拼接,不能和其他类型拼接。

l+s
[10,2.2, ‘lady_killer’, [4, 5], True, 6, 8]

重复(重复操作符*)

l = [‘-’]
l*10
[‘-’, ‘-’, ‘-’, ‘-’, ‘-’, ‘-’, ‘-’, ‘-’, ‘-’, ‘-’]

删除

确定位置时,使用切片及关键字del

del l[0]
l
[]

l = [1,2,3]
del l[1:]
l
[1]

删除整个列表,del 列表名,一般不需要程序员去删除。

方法

添加

append(x),将 x 添加到序列的末尾 (等同于 s[len(s):len(s)] = [x])。

l = [1,2]
l.append(3)
l
[1, 2, 3]

insert(i, x),在由 i 给出的索引位置将 x 插入 l (等同于**l[i:i] = [x]**),i及后序元素后移。

l.insert(2,4)
l
[1, 2, 4, 3]

l[3:3] = [5,6]
l
[1, 2, 4, 5, 6, 3]

extend(t),用序列 t 的内容扩展 s。

l = [1,2,4,3]
s = (5,6,7)

l.extend(s)
l
[1, 2, 4, 3, 5, 6, 7]

删除

pop([i]),提取在 i 位置上的项,并将其从列表中移除。默认为最后一个元素。

s = l.pop()
s
3

remove(x),删除第一个等于 x 的元素,没有时ValueError。不确定是否存在时,先使用in进行检查。

l = [1,3,5,3,6]
l.remove(3)
l
[1, 5, 3, 6]

l.remove(4)
Traceback (most recent call last):
  File “”, line 1, in
ValueError: list.remove(x): x not in list

clear(),s 中移除所有项 (等同于 del s[:])

>>> l.clear()

l
[]

浅拷贝

copy,创建 s 的浅拷贝 (等同于 s[:])

s = l.copy()
s
[1, 3, 5, 3, 6]
l
[1, 3, 5, 3, 6]
m = s
m
[1, 3, 5, 3, 6]

id(l);id(s);id(m)
1806267157640
1806267194824
1806267194824

浅拷贝会新开辟内存,复制相同内容,赋值则是取个别名,故m、s指向同一个内存地址。

统计

count(x),xs 中出现的总次数

l = [1,2,‘2’,6,9.4,4,2]
l.count(2)
2

查找

index(x[, i[, j]]),x 首次出现项的索引号(范围[i,j)),没有找到时ValueError。不确定是否存在时,先使用in进行检查。

l.index(2)
1
l.index(7)
Traceback (most recent call last):
  File “”, line 1, in
ValueError: 7 is not in list

逆序

reverse(),将列表中的元素逆序,就地反转,没有返回值。

l.reverse()
l
[2, 4, 9.4, 6, ‘2’, 2, 1]
l[::-1]
[1, 2, ‘2’, 6, 9.4, 4, 2]
l
[2, 4, 9.4, 6, ‘2’, 2, 1]

若需要列表本身反转,就用reverse(),如果要列表本身不变,得到反转后的,就用[::-1]。

排序

sort(*, key=None, reverse=False),此方法会对列表进行原地排序,只使用 < 来进行各项间比较。 异常不会被屏蔽 —— 如果有任何比较操作失败,整个排序操作将失败(而列表可能会处于被部分修改的状态)

key 指定带有一个参数的函数,用于从每个列表元素中提取比较键,(例如 key=str.lower)。默认值 None 表示直接对列表项排序而不计算一个单独的键值。

reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。

l = [1,4,2,5,3]
l.sort()
l
[1, 2, 3, 4, 5]
l = [1,5,3,‘a’,4]
l.sort()
Traceback (most recent call last):
  File “”, line 1, in
TypeError: ‘<’ not supported between instances of ‘str’ and ‘int’
l
[1, 3, 5, ‘a’, 4]
l = [‘ANDY’,‘andy’,‘lady’,‘Lady’,‘killer’]
l.sort(key=str.lower)
l
[‘ANDY’, ‘andy’, ‘killer’, ‘lady’, ‘Lady’]
l.sort(key=str.upper,reverse=True)
l
[‘lady’, ‘Lady’, ‘killer’, ‘ANDY’, ‘andy’]

第二个例子,str和in不能比较,但是列表修改了部分

最后一个例子,[‘ANDY’, ‘andy’, ‘killer’, ‘lady’, ‘Lady’]降序排列保证了排序稳定性。

student = [(‘frank’,100),(‘yu’,89),(‘lady’,80),(‘killer’,99)]

student.sort(key=lambda stu:stu[1])
student
[(‘lady’, 80), (‘yu’, 89), (‘killer’, 99), (‘frank’, 100)]

对于这种有结构的数据,使用key也不错。

多字段排序

student = [(‘frank’,100),(‘yu’,89),(‘lady’,80),(‘killer’,99),(‘yubo’,89)]
student.sort(key = lambda s:(s[1],s[0]))
student
[(‘lady’, 80), (‘yu’, 89), (‘yubo’, 89), (‘killer’, 99), (‘frank’, 100)]

如果相同,就按另一个字段排序

相关内置函数

列表长度

len()

l = [1,2,‘3’,[3,4]]
len(l)
4

不确定元素个数,又想使用索引访问时可先使用len判断。

排序与反转

sorted(iterable, *, key=None, reverse=False),与自带的方法sort不同,会返回一个新的已排序列表。不再展示,和sort用法一样。

reversed(seq)

返回一个反向的 iteratorseq 必须是一个具有 __reversed__() 方法的对象或者是支持该序列协议(具有从 0 开始的整数类型参数的 __len__() 方法和 __getitem__() 方法)。

r = [s for s in reversed(l)]
r
[[3, 4], ‘3’, 2, 1]

个人很少用,返回的是迭代器,不是反转后的列表。

求和

sum(iterable, /, start=0)

start 开始自左向右对 iterable 的项求和并返回总计值。 iterable 的项通常为数字,而 start 值则不允许为字符串

>>> l = [1,2,3,4,5]

sum(l)
15

list()

接收可迭代对象,通过浅拷贝,返回列表。

list((3,6,‘7’,[5,4]))
[3, 6, ‘7’, [5, 4]]

min()、max()、enumerate()、zip()很少用,再更新。

模拟数据结构

避免文章篇幅太长,不再黏贴代码,提供思路。

模拟栈

列表低索引一端做栈底,另一端做栈顶。append函数进行栈顶元素添加,pop进行栈顶元素删除。len()判断栈是否为空。

模拟队列

列表低索引一端做队头,另一端做队尾。append函数进行队尾元素添加,pop(0)进行队头元素删除。len()判断队列是否为空。

列表生成式

这个为什么红色加粗呢?因为非常重要!!!

如果我们需要一个得到一个包含数字1-10的列表,我们可以怎么做呢?

首先想到的是for循环

L = []
for i in range(1, 11):
    L.append(i)
print(L)

这没有错,但是使用列表生成式更简洁。

L = [x for x in range(1, 11)]

对于上面这种,我们可以抽象为  [x for x in S],只要S可迭代就好

[x for x in (2,‘4’,True,[‘lady’,‘killer’])]
[2, ‘4’, True, [‘lady’, ‘killer’]]

如果我们想要得到1-10的平方构成的列表呢?

[x**2 for x in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

我们再抽象为  [F(x) for x in S], F(x)是关于x的表达式

如果我们想要得到1-10中偶数的平方构成的列表呢?

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值