Python基础学习笔记(四)

介绍Python语言的一些独到之处,比如切片、迭代、列表生成器、生成器和迭代器的用法

一、切片
1、给定一个列表L = [‘Michael’, ‘Sarah’, ‘Tracy’, ‘Bob’, ‘Jack’]
(1)、L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。
(2)、python同样支持倒数切片。L[-2:]表示[‘Bob’, ‘Jack’] ;L[-2:-1] [‘Bob’]
2、tuple也可以用切片操作,操作的结果仍是tuple。(0, 1, 2, 3, 4, 5)[:3] ,结果为(0, 1, 2)。
3、字符串也可以用切片操作,操作结果仍是字符串。‘ABCDEFG’[:3] ,结果为’ABC’。
二、迭代
1、给定一个列表或元组,可以用for循环输出它的所有值,这种输出模式称为迭代。
2、字典的三种迭代方式:给定字典d
(1)、key值迭代:for key in d;
(2)、value值迭代:for value in d.values();
(3)、key值和value值同时迭代:for k, v in d.items();
3、字符串也可以进行迭代。
4、用from collections import Iterable模块判断给定的类型是否可以迭代。例如:

>>> isinstance('abc', Iterable) # str是否可迭代
True

5、Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。例如:

>>> for i, value in enumerate(['A', 'B', 'C']):
     print(i, value)
0 A
1 B
2 C

三、列表生成式
1、要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))。
2、列表生成式的应用:[x * x for x in range(1, 11)]
结果为:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3、列表生成式的后边还可以加上if选择语句。例如:[x * x for x in range(1, 11) if x % 2 == 0]
结果为:[4, 16, 36, 64, 100]
4、列表生成式还可以使用两层循环,生成全排列。
例如:m + n for m in ‘ABC’ for n in ‘XYZ’]
结果为:[‘AX’, ‘AY’, ‘AZ’, ‘BX’, ‘BY’, ‘BZ’, ‘CX’, ‘CY’, ‘CZ’]
四、生成器
1、创建一个generator的方法
(1)、通过迭代的方法,把一个列表生成式的[ ]改成( );
(2)、如果一个函数定义中包含关键字yield,那么这个函数就不再是一个普通函数,而是一个generator;
2、输出每一个denerator的元素的方法
(1)、通过next函数一个一个打印;
(2)、for…in…迭代;
五、迭代器
1、定义:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
2、可以使用isinstance()判断一个对象是否是Iterator对象。
3、生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
4、把list、dict、str等Iterable变成Iterator就可以使用iter()函数。

发布了9 篇原创文章 · 获赞 4 · 访问量 610
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章