欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习之旅(十二)

程序员文章站 2022-06-12 08:09:53
Python基础知识(11):高级特性 一、分片(切片) 通过索引来获取一定范围内的元素 二、迭代 给定一个元组或列表,通过for循环遍历,这种遍历称为迭代 结果: Alice 通过collections模块的Iterator判断一个对象是否是可迭代对象 enumerate函数可以把一个list变成 ......

python基础知识(11):高级特性

一、分片(切片)

 

通过索引来获取一定范围内的元素

#字符串
s="alice"
s[0:4:2]
结果:
'ai'

#列表
l=[1,2,3,4,5,6]
l[0:2]
结果:
[1, 2]

#元组
t=(1,2,3,"a","b","c")
t[:]
结果:
(1, 2, 3, 'a', 'b', 'c')

二、迭代

给定一个元组或列表,通过for循环遍历,这种遍历称为迭代

def test():
    l=["a","l","i","c","e"]
    for i in l:
        print(i)

test()

结果:

a
l
i
c
e

 

通过collections模块的iterator判断一个对象是否是可迭代对象

from collections import iterable
isinstance("more", iterable)
结果:true

enumerate函数可以把一个list变成索引-元素对,可以在for循环中同时迭代索引和元素本身:

for i in enumerate(["more","money","never","god"]):
    print(i)

结果:    
(0, 'more')
(1, 'money')
(2, 'never')
(3, 'god')

三、列表生成式

可以用list(range(1, 11))生成列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

列表生成式用一行语句代替循环生成列表

l=[]
for i in range(1,10):
    l.append(i*i)

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

[x*x for x in range(1,10)]
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]

四、生成器

生成器generator:列表中的元素可以在循环中按照某种算法推算出来机制

 创建一个generator的方法:

1、把一个列表生成式的[]改成(),就创建了一个generator:

l = [x * x for x in range(9)]
l

结果:

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

五、迭代器

凡是可作用于for循环的对象都是iterable类型

凡是可作用于next()函数的对象都是iterator类型,它们表示一个惰性计算的序列

集合数据类型如listdictstr等是iterable但不是iterator,不过可以通过iter()函数获得一个iterator对象

 

资料来源:

廖雪峰官方网:https://www.liaoxuefeng.com