推导式分类
推导式 comprehensions(又称解析式),是 python 的一种独有特性。推导式是 可以从一个数据序列构建另一个新的数据序列。
- 列表推导式
- 语法:
- 变量名=[表达式 for 变量 in 列表]
- 或者变量名= [表达式 for 变量 in 列表 if 条件]
- 语义:遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算。或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式。
- 练习1:快速创建一个包含元素1-10的列表
- 练习2:快速创建一个包含1-10之间所有偶数的列表
- 练习3:现在有一列表 lst = [[1,2,3],[4,5,6],[7,8,9]]要求出 1/4/7 和 1/5/9 元素, 思考如何取出
使用 列表推导式: lst1 = [lst[i][0] for i in range(len(lst))] print(lst1) lst2 = [lst[i][i] for i in range(len(lst))] print(lst2)
- 面试题分析:
面试题:求 a = [lambda x: x * i for i in range(3)] print(a[0](2))
- 字典推导式 字典推导式列表推导式思想的延续,语法差不多,只不过产生的是字典而已。
- 字典推导式格式: 变量名={....}
- 练习:将字典中的 key 和 value 进行对换。
dict1 = {'a':1,'b':2} dict_new = {} #传统方式 for key,value in dict1.items(): dict_new[value] = key print(dict_new) #字典推导式 dict_new = {v:k for k,v in dict1.items()} print(dict_new)
- 集合推导式
- 集合推导式跟列表推导式非常相似,唯一区别在于用{}代替[]
- 练习:创建一个存储10个偶数的集合
set1 = {x for x in range(10) if x % 2 == 0}
print(set1) ```
模块
- 模块的概念
- 模块的定义
- 模块中可以存在内容
- 模块的使用
- 导入模块
- 1.import 模块名
- 2.import 模块 as 别名
- 3.一行导入多个模块(不推荐)
- 4.from ... import...局部导入方式
- 5.from ... import ... as 别名
- 6.from 模块 import *
- __all__的使用
- 模块搜索的路径
- import sys sys.path
- pyc文件临时文件
- 将模块当脚本文件允许(__name__的使用)
- 导入模块
常用模块
- random模块
- random()
- 产生大于 0 且小于 1 之间的小数
- uniform(a,b)
- 产生指定范围内的随机小数
- randint(a,b)
- 产生 a,b 范围内的整数,包含开头和结尾
- random.choice(lst)
- 随机返回序列中的一个数据
- random.shuffle()
- 随机打乱列表顺序
- random()
- sys模块
- sys.path
- sys.version
- sys.argv
- 时间模块
-
time.sleep()
-
表示时间的三种方式:
- 1.时间戳(给计算机看的)
- time.time()
- 2.字符串时间(给人看的)
- time.asctime()
- ret = time.strftime('%Y-%m-%d %H:%M:%S')
- 3.元组时间(用来操作时间的)
- time.localtime()
- 1.时间戳(给计算机看的)
-
不同格式之间时间的相互转换
- 1.时间戳转元组时间
ts = time.time() ret = time.localtime(ts) print(ret)
- 2.时间元组转时间戳
ts = time.localtime() ret = time.mktime(ts) print(ret)
- 3.时间元组转字符串时间
ret = time.strftime("%Y-%m-%d",time.localtime()) print(ret)
包
- 什么是包
- 包的导入
- from 包名.模块名... import 变量名
- from 包名.模块名... import 变量名 1,变量名 2...
- from 包名 import 模块名
- from 包名 import 模块名,模块名 1...
-
init.py的使用
-