码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习之旅(十二)

时间:2018-11-24 00:51:35      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:iter   test   语句   bsp   python   class   官方   style   范围   

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

Python学习之旅(十二)

标签:iter   test   语句   bsp   python   class   官方   style   范围   

原文地址:https://www.cnblogs.com/finsomway/p/10009098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!