<>一,推导式

<>1,推到表达式(python特有)
# 创建一个1到10列表 list_a = [for i in range(1, 11)] print(list_a)
​ 1到10的列表
list_a = [i for i in range(1,11)] # 会自动创建一个1到10的列表 print(list_a) # for
循环下面的代码块移到for的前面,并且这个推导式会把i的每一次值保留
​ 1到10,偶数的列表
# 创建一个列表,让这个列表里面的元素是1到10的偶数 list_a = [i for i in range(1, 11) if i % 2 == 0]
print(list_a) # 有if判断,判断句写在for循环后面,i会根据i的真假保留值
​ 1到10,基数变字符串,偶数扩大10倍的列表
list_a = [i*10 if i % 2 == 0 else str(i) for i in range(1, 11)] print(list_a)
# if条件判断里面有else的话,写成三目运算放在for循环前面
​ 列表推导式,主要完成不那么复杂的功能,推导式的代码必须写成一行!!!

<>2,字典推导式
# 创建一个字典,以键值对的形式存在 dict_a = {i: j for i, j in [('a', 1), ('b', 2), ('c', 3)]}
print(dict_a) # 会把列表里面的元组的值分别赋值给i,j并生成一个字典
<>二,迭代器

*
实现一个迭代器之前必须有一个可迭代对象

*
什么对象是可迭代对象:如果一个对象实现了__iter__这个魔法方法

<>1,创建一个列表迭代器

​ 迭代器:实现了__iter__和__next__方法的对象
a = [1, 2, 3, 4, 5] # 创建一个可迭代对象 b = iter(a) # 把a通过iter这个函数转换成迭代器,赋值给b print(b)
<list_iterator object at 0x0000022BA5DCB080> # 列表迭代对象

""" 迭代器本身需要支持这两种方法才叫迭代器: 1,iterator.__iter__() 2,iterator.__next__() 生成迭代器的函数:
1,iterator = iter(a) 2,iterator = a.__iter__() 在迭代器里面取值: 1,next(iterator)
2,iterator.__next__() 注意,如果迭代器取值完之后,会返回StopIteration错误 """
​ 可迭代对象和迭代器的区别:

​ 1,可迭代对象里面取出元素,不是真正意义上的取出来,还是存在的

​ 2,迭代器里面取元素就是直接把他取出来,取走了就没了

<>三,生成器

* 用列表推导式生成的是列表,用元组推导式生成的是生成器
* 生成器属于迭代器,它实现了__iter__和__next__这两个魔法方法
<>1,创建一个生成器
a = (i for i in range(1, 11)) print(a) <generator object <genexpr> at
0x0000023A61639620> # 用元组推导式实现了一个生成器对象
<>2,实现了yield关键字的生成器函数
def func(num): a = 0 while a<num : yield a a += 1 #
这个函数使用了yield关键字,这是一个生成器函数,返回的对象是生成器对象 """ 1,返回这个函数对象 yield一个对象: 2,暂停这个函数
3,等待下次next重新激活函数 """

<>四,模块

* 什么是模块? .py的文件
<>1,在一个文件里面使用同一个目录里另外一个文件的功能!





​ 只导入一个工具箱里面的一个工具,三种导入方式:

​ 1,from 工具箱 import 工具1,工具2,工具3

​ 2, from 工具箱 import * 导入所有工具

​ 3,import pandas as pd 给模块取别名



<>2,如果一个模块的函数名字太长,取别名

​ import pandas as pd

​ from 模块 import 这个模块的名字真长真恶心心啊 as func

<>3,如果两个文件不在同一个目录下
imoprt sys print(sys.path) # sys.path 打印出python的模块所在地 sys.path.append(r
'D:/python/PycharmCode/test/test') # 例子 #只要导入模块所在的目录就可以了,不用精确到文件
​ python在导入一个文件的时候回去sys.path里面去找,找到导入,找不到报错

<>4,导入模块时模块有红线

<>五,包和包管理

<>1,包的概念

​ 1.1,把很多模块放到一个文件夹里面,就可以形成一个包

​ 1.2,当一个文件夹里面有个__Iinit__.py的文件,文件夹名就是包名

​ 1.3,在pycharm里创建一个包

<>2,包管理

​ 当很多模块放在文件夹中时,为了方便应用包中的模块,引入了包管理

<>3,导入包里面的模块

<>


技术
©2019-2020 Toolsou All rights reserved,
Spark SQL-编程springboot多配置文件配置python 动态规划求解单源最短路径fio使用详解PostgreSQL: 九. 索引新手玩海思HI3520D开发板(一,升级)Redis 计数器 高并发的应用华为Mate 40 Pro+ 5G曝光:徕卡电影镜头、陶瓷机身TypeScript-多态篇[AndroidO] [RK3399] -- GPIO驱动与控制方式