廖雪峰Python学习笔记3——切片,迭代,列表生成式,迭代器,生成器

  • 切片:(取指定索引范围的操作)
    list=[‘a’,‘b’,‘c’,1,2,3,4]
    list[0:]----从0开始索引取出后面的所有元素–>a,b,c,1,2,3,4
    list[2:5]—从2开始索引取出三个元素–>c,1,2
    list[-1]------取出倒数第一个元素—>4
    list[-3:]-----从-3开始索引一直取到最后—>2,3,4
    list[1:-1]----从1开始索引取到倒数第二个元素—>b,c,1,2,3
    list[1:6:2]—从1开始索引直至索引到6,每隔2取一个—>b,1,3
    ‘abcd123’[1:6:2]---->b13

  • 迭代:(可以通过for循环来遍历的对象(如list或tuple或dick))
    for n in ['a','b','c',1,2,3]:----------迭代List
    for n in 'abc123':---------------迭代字符串
    for n in ('a','b','c',1,2,3):---------迭代tuple
    for k in {'name':'jessica','age':23,'where':'harbin'}:—迭代dick的key(默认)
    for v in {'name':'jessica','age':23,'where':'harbin'}.values():–迭代dick的value
    for k,v in {'name':'jessica','age':23}.items():–迭代dick的key和value
    判断一个对象是否迭代:
    from collections import Iterable导入包
    isinstance([1,2,3],Iterable);判断
    把一个list,以索引-元素 对的形式展示出来:enumerate()
    for i,value in enumerate([1,2,3,4]):
    判断一个对象是否为迭代器(可以被next()函数调用不断返回下一个值迭的对象):
    form collections import Iterator导入包
    isinstance([],Iterator);判断

  • 列表生成式:
    [x*x for x in range(1,11)]-----生成1-10所有数的平方
    [x*x for x in range(1,11) if x%2 !=0]—生成1-10中奇数的平方
    [m+n for m in 'abc' for n in 'xyz']----两层循环

    可迭代对象

  • 生成器:(一边循环,一边计算的机制)
    创建一个generator:
    方法1:()即:[]变成()L1=(n for n in range(1,10))
    调用generator中元素的函数:
    1、next()函数挨个调取generator中的元素
    2、for 循环调用:for n in L1
    方法2:函数定义中包含yield关键字

你可能感兴趣的:(Python)