Python元组详解,新鲜出炉的蚂蚁金服面经

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

在这里插入图片描述

2.元组的 修改 && 删除


(1)元组的修改:

虽然在开头就说元组不可变,但是它还是有个被支持的骚操作——元组之间进行连接组合:

tuple1 = (‘xiaoming’, ‘xiaohong’, 18, 21)

tuple2 = (1, 2, 3, 4, 5)

tuple_new = tuple1 + tuple2

print(tuple_new)

在这里插入图片描述

(1)元组的删除:

虽然元组不可变,但是却可以通过del语句删除整个元组。

如下:

tuple1 = (‘xiaoming’, ‘xiaohong’, 18, 21)

print(tuple1) # 正常打印tuple1

del tuple1

print(tuple1) # 因为上面删除了tuple1,所以再打印会报错哦!

在这里插入图片描述

3.元组的内置方法


元组是不可变,但是我们可以通过使用内置方法来操作元组。常用的内置方法如下:

  1. len(tuple):计算元组元素个数;

  2. max(tuple):返回元组中元素的最大值;

  3. min(tuple):返回元组中元素的最小值;

  4. tuple(seq):将列表转换为元组。

其实更多时候,我们是将元组先转换为列表,操作之后再转换为元组(因为列表具有很多方法~)。

4.将序列分解为单独的变量


(1)

Python允许将一个包含N个元素的元组或序列分别为N个单独的变量。这是因为Python语法允许任何序列/可迭代对象通过简单的赋值操作分解为单独的变量,唯一的要求是变量的总数和结构要与序列相吻合。

如下:

tuple1 = (18, 22)

x, y = tuple1

print(x)

print(y)

tuple2 = [‘xiaoming’, 33, 19.8, (2012, 1, 11)]

name, age, level, date = tuple2

print(name)

print(date)

在这里插入图片描述

如果要分解未知或任意长度的可迭代对象,上述分解操作岂不直接很nice!通常在这类可迭代对象中会有一些已知的组件或模式(例如:元素1之后的所有内容都是电话号码),利用“*”星号表达式分解可迭代对象后,使得开发者能轻松利用这些模式,而无须在可迭代对象中做复杂操作就能得到相关的元素。

在Python中,星号表达式在迭代一个变长的元组序列时十分有用。如下演示分解一个待标记元组序列的过程。

records = [

(‘AAA’, 1, 2),

(‘BBB’, ‘hello’),

(‘CCC’, 5, 3)

]

def do_foo(x, y):

print(‘AAA’, x, y)

def do_bar(s):

print(‘BBB’, s)

for tag, *args in records:

if tag == ‘AAA’:

do_foo(*args)

elif tag == ‘BBB’:

do_bar(*args)

line = ‘guan:ijing234://wef:678d:guan’

uname, *fields, homedir, sh = line.split(‘:’)

print(uname)

print(*fields)

print(homedir)

print(sh)

在这里插入图片描述

(2)

在Python中迭代处理列表或元组等序列时,有时需要统计最后几项记录以实现历史记录统计功能。

使用内置的deque实现:

from _collections import deque

q = deque(maxlen=3)

q.append(1)

q.append(2)

q.append(3)

print(q)

q.append(4)

print(q)

在这里插入图片描述

如下——演示了将序列中的最后几项作为历史记录的过程。

from _collections import deque

def search(lines, pattern, history=5):

previous_lines = deque(maxlen=history)

for line in lines:

if pattern in line:

yield line, previous_lines

previous_lines.append(line)

Example use on a file

if name == ‘main’:

with open(‘123.txt’) as f:

for line, prevlines in search(f, ‘python’, 5):

for pline in prevlines: # 包含python的行

print(pline) # print (pline, end=‘’)

打印最后检查过的N行文本

print(line) # print (pline, end=‘’)

123.txt:

pythonpythonpythonpythonpythonpythonpython

python

python

在这里插入图片描述

在上述代码中,对一系列文本行实现了简单的文本匹配操作,当发现有合适的匹配时,就输出当前的匹配行以及最后检查过的N行文本。使用deque(maxlen=N)创建了一个固定长度的队列。当有新记录加入而使得队列变成已满状态时,会自动移除最老的那条记录。当编写搜索某项记录的代码时,通常会用到含有yield关键字的生成器函数,它能够将处理搜索过程的代码和使用搜索结果的代码成功解耦开来。

5.实现优先级队列


使用内置模块heapq可以实现一个简单的优先级队列。

如下——演示了实现一个简单的优先级队列的过程。

import heapq

class PriorityQueue:

def init(self):
文末有福利领取哦~

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

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

👉二、Python必备开发工具

img
👉三、Python视频合集

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

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

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

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
img

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

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-Z9YdUyfk-1713350461712)]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值