函数Day06

一 列表推导式

列表推导式:提供了 一种创建列表的简单途径
(1) 最简单的方式
myList = [i for i in range(1,8)]
[1, 2, 3, 4, 5, 6, 7]
(2) 用 if 过滤
myList = [3*i for i in range(1,8) if i>3]
myList = [i+1 for i in range(1,20,2)]
# myList = []
# for i in range(1,8):
#     if i>3:
#         myList.append(i*3)
# print(myList)
(3) 列表的嵌套
myList = []
for i in range(1,20):
    myList.append([i,i+2])
print(myList)
myList = [[i,i+2] for i in range(1,20)]
(4) 循环的嵌套
myList = [[x,y] for x in range(1,10) for y in range(3,10)]
myList = []
for x in range(1, 10):
    for y in range(3,10):
        myList.append([x,y])
例子:

把一个 3x4的矩阵转换成 4x3的矩阵列表

myList = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]
myList = [
    [*,*,*],
    [*,*,*],
    [*,*,*],
    [*,*,*]
]
newList1 = []
for i in range(4):
    newList2 = []
    for x in myList:
        # print(x[i])
        newList2.append(x[i])
    # print(newList2)
    newList1.append(newList2)

#变成列表推导式
newList = [[row[i] for row in myList] for i in range(4)]

二 迭代器和生成器

(1) 迭代器

迭代对象:能够作用于for循环的称为迭代对象 我们可以通过isinstance 去判断是否为可迭代对象
引入 from collection import Iterable
from collections import Iterable
print(isinstance("",Iterable))#True
print(isinstance({},Iterable))#True
print(isinstance((),Iterable))#True
print(isinstance(1,Iterable))#False
print(type(()))
TypeError: 'int' object is not iterable
for i in 1:
    print(i)
迭代器:

将可迭代对象 加上 iter函数 生成 迭代器

能够配合 next的方法来使用 每次next 会输出一个元素的值

myIter = iter(myStr)
print(myIter)  #<str_iterator object at 0x000001820AA800B8>

print(next(myIter))
print(next(myIter))
print(next(myIter))
# print(next(myIter)) #当我的迭代器走完以后 会报StopIteration的错误信息

(2) 生成器

生成器有俩种方式
  1. 使用列表推导式

    
    #好处  节约资源   避免一次生成  用一次生成一个
    
    myGen = (x for x in range(10000000000))  #生成器
  2. 将函数里 配合 yield 关键字

    def demo():
       for i in range(100):
           print(i)
           yield i
    myGen = demo()
    next(myGen)   #配合 next方法  每次 next一次 就会往下 走一次
注意:

​ 当我的生成器 走完以后 依然会报 StopIteration 的错误

三 装饰器

概念:在代码运行期间动态的增加功能 称之为装饰器

四 os模块

概念:包含了操作系统的大部分功能
函数名函数值
os.name获取当前的操作系统的类型nt->windows posix->unix 后者Linux
os.environ[ɪn’vaɪərən]获取操作系统中的环境变量
os.environ.get(“path”)[ɪn’vaɪərən]获取path的环境变量
os.curdir()获取当前的目录
os.getcwd()获取当前的工作目录
os.listdir()以列表的形式 返回当前目录的文件
os.mkdir()创建目录
os.rmdir()删除目录
os.rename(old,new)修改文件后者文件夹的名字
os.remove()删除文件
os.system(command)执行系统命令
os.path.join(path1,path2)将path1和path2拼接成一个正常的路径
os.path.splitext()获取文件扩展名
os.path.isdir()判断是否是目录
os.path.isfile()判断是否是文件
os.path.exists()判断文件或者目录是否存在
os.path.getsize()获取文件的大小(字节)
os.path.dirname()获取路径的目录名
os.path.basename()获取路径的文件名
os.path.abspath()返回文件的绝对路径
os.path.split()拆分路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值