廖雪峰python学习笔记4:高级特性

来源:互联网 发布:eclipse插件安装 Linux 编辑:程序博客网 时间:2024/06/04 05:21
# -*- coding: utf-8 -*-#切片#如何取一个list或tuple的部分元素?#和切片一比,循环很麻烦L = ['Michael', 'Sarah', 'Tracy', 'Leo']S = []#L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3,就是取三个的意思S = L[0:3]print(S)#后3个数S = L[-3:]print(S)#迭代for i in L:    print(i)#其中i为迭代器#带序号的迭代 : enumerate 动词,枚举for i, value in enumerate(L):    print(i, value)#列表生成式#要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9]print(list(range(1, 10)))#但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?#列表生成式可以用一行语句代替循环生成上面的listprint([x * x for x in range(1,10)])#for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:print([x * x for x in range(1, 11) if x % 2 == 0])#还可以使用两层循环,可以生成全排列:print([m + n for m in 'ABC' for n in 'XYZ'])#生成器generator#有点像动态数组,把列表生成器的[] 改成 () 就成了generatorg = (x * x for x in range(1,10))print(g)#输出结果:<generator object <genexpr> at 0x7f98b221c2b0>#如何把generator的元素顺序输出呢?for n in g:    print(n)#作业:杨辉三角def print_yang:    pass#迭代器#Python的for循环本质上就是通过不断调用next()函数实现的,例如:for x in [1, 2, 3, 4, 5]:    pass# 首先获得Iterator对象:it = iter([1, 2, 3, 4, 5])# 循环:while True:    try:        # 获得下一个值:        x = next(it)    except StopIteration:        # 遇到StopIteration就退出循环        break

0 0
原创粉丝点击