news 2026/4/26 18:45:35

python高级特性简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python高级特性简介

切片

切片就相当于其他语言中的截断函数,取部分指定元素用的。

1

2

3

4

5

6

7

8

L=list(range(100))

#利用切片取部分元素

print(L[0:10])#取从索引从0到9的前10个元素

print(L[-10:])#取最后10个元素

print(L[10:20])#取从索引10到19的10个元素

print(L[:10:2])#从前10个元素中每两个取一个元素

print(L[::10])#所有元素中每10个取一个元素

运行结果:

取从索引从0到9的前10个元素: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
取最后10个元素: [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
取从索引10到19的10个元素: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
从前10个元素中每两个取一个元素: [0, 2, 4, 6, 8]
所有元素中每10个取一个元素: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

迭代(Iteration)

迭代,即遍历。使用for循环的时候,只要是作用于一个可迭代对象,for循环就能正常运行。

判断一个对象是够是可迭代对象:

1

2

3

4

5

fromcollectionsimportIterable

print('字符串 is Iterable ?',isinstance('abc',Iterable))

print('list is Iterable ?',isinstance([1,2,3],Iterable))

print('整数 is Iterable ?',isinstance(123,Iterable))

运行结果:

字符串 is Iterable ? True
list is Iterable ? True
整数 is Iterable ? False

遍历可迭代对象的几种方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#遍历字符串:

forchin'abc':

print(ch)

#遍历list

L=['A','B','C']

fortmpinL:

print(tmp)

fori,valueinenumerate(L):

print(i,':',value)

#遍历dict

d={'1':'111','2':'222','3':'333'}

forkey,vind.items():

print('key:',key,'value:',v)

列表生成式

常见的list生成方式:

1

list(range(1,11))

然而通过python内置的列表生成式,你可以换不同的姿势生成list,你可以这样:

1

2

3

[x*xforxinrange(1,11)]

#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这样:

1

2

3

[x*xforxinrange(1,11)ifx%2==0]

[4,16,36,64,100]

还可以这样:

1

2

3

[m+nformin'ABC'fornin'XYZ']

['AX','AY','AZ','BX','BY','BZ','CX','CY','CZ']

是不是很涨姿势? 哈哈~

生成器(generator)

通过上面的列表生成式,我们可以直接创建一个列表。但是受内存限制,列表容量肯定是有限的。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环过程中不断推算出后续的元素呢?这样讲就不必创建完整的list,从而节省大量空间。在Python中,这种一边循环一边计算的机制,成为生成器:generator.

创建一个生成器最简单的方法: 把list的[]改成()

1

2

3

4

5

6

7

8

9

L=[x*xforxinrange(1,10)]

print(L)

g=(x*xforxinrange(1,10))

print(g)

//运行结果:

[1,4,9,16,25,36,49,64,81]

<generatorobject<genexpr> at0x10cc14938>

而且,generator也是可迭代对象,可以通过for来遍历。

定义generator的另一种方法:

1

2

3

4

5

6

7

8

9

deffib(max):

n,a,b=0,0,1

whilen <max:

yieldb

a,b=b, a+b

n=n+1

return'done'

print(fib(6))

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

迭代器(Iterator)生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 18:40:58

2025届学术党必备的六大降AI率工具实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术写作跟内容创作范畴&#xff0c;AI生成文本的检测越发严格&#xff0c;降AI率网站是专…

作者头像 李华
网站建设 2026/4/26 18:40:57

2025届最火的降AI率网站解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 针对知网AI检测系统的识别逻辑&#xff0c;要降低论文疑似AI生成比例&#xff0c;需采取系统…

作者头像 李华
网站建设 2026/4/26 18:36:20

3步轻松备份QQ空间所有历史说说:GetQzonehistory完整指南

3步轻松备份QQ空间所有历史说说&#xff1a;GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心QQ空间里那些记录青春岁月的说说、照片和评论会随着时间…

作者头像 李华
网站建设 2026/4/26 18:31:00

7-Zip完全指南:免费开源的终极文件压缩解决方案

7-Zip完全指南&#xff1a;免费开源的终极文件压缩解决方案 【免费下载链接】7z 7-Zip Official Chinese Simplified Repository (Homepage and 7z Extra package) 项目地址: https://gitcode.com/gh_mirrors/7z1/7z 7-Zip作为一款完全免费且开源的压缩软件&#xff0c;…

作者头像 李华
网站建设 2026/4/26 18:30:50

Windows系统优化终极实战:Chris Titus Tech WinUtil工具完全指南

Windows系统优化终极实战&#xff1a;Chris Titus Tech WinUtil工具完全指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否曾经为Win…

作者头像 李华