部分推导和枚举

求m,n中各个元素的乘积  矩阵
m=[[1,2,3],[4,5,6],[7,8,9]]
n=[[2,2,2],[3,3,3],[4,4,4]]
其中i,j对应的是相应下标   i是m最外头的中括号对应的下标  j是里面三个中括号对应的下标
通过元素下标  获取各个数据
for i in range(len(m)):
    for j in range(len(m[i])):
        print(m[i][j]*n[i][j],end=' ')

s=[m[i][j]*n[i][j] for i in range(len(m)) for j in range(len(m[i]))]
print(s)
内部循环
s=[[m[i][j]*n[i][j] for j in range(len(m[i]))] for i in range(len(m))]
print(s)
m中1,4,7分别与n中的2,3,4对应相乘  单个元素下标相匹配
s=[[m[i][j]*n[i][j] for i in range(len(m))] for j in range(len(m[i]))]
print(s)

例6 结合两个列表的元素,如果元素之间不相等的话
a=[1,2,3]
b=[3,1,4]
for i in a:
    for j in b:
        if i!=j:
            print((i,j),end=' ')
推导
s=[(i,j) for i in a for j in b if i!=j]
print(s)


 例7 结合三个列表的元素,如果元素之间不相等的话
a=[1,2,3]
b=[2,3,4]
c=[2,5,4]
for i in a:
    for j in b:
        for k in c:
           if i!=j and i!=k and j!=k:
               print((i,j,k),end=' ')

s=([[i,j,k] for i in a for j in b for k in c if i!=j and i!=k and j!=k])
print(s)

创建一个列表 俩个元祖  (number,square)  (2,4,8,9)
print([(x,x**2) for x in range(6)])

枚举  只能从固定的选择中选择合适的选项   限定数据类型中的属性值   保证数据的准确性
      定义枚举时,成员名称不允许重复 值也不可以重复  当成员值相同时又被叫做改成员的别名
      定义枚举要导入enum模块
      枚举定义用class关键字,继承Enum类。
from enum import Enum, unique


@unique
unique 装饰器 唯一 限制枚举不能定义相同值的成员
class color(Enum):
    枚举是对于一些既定的值或不被允许随意赋值的量
    每个成员的数据类型就是它所属的枚举
    自定义的类/枚举  又叫自定义数据类型
    orange=1
    red_reia=11
    red=2
    blue=3
    green=4
    indigo=5
    purple=6
    yellow=7
print(color.red)
根据枚举的值  获取枚举的名字
print( color(1))
获取枚举值
print(color['red'].value)
创建  生成一个枚举数据
co=color['purple']
print('枚举数据名字',co.name)
print('枚举数据的值',co.value)
 当成一个可迭代元素进行输出
for c in color:
    print(c,end=' ')

遍历
for color in color.__members__.items():
    print(color)
枚举之间的比较
枚举成员可进行同一性比较
print(color.blue is color.blue)
输出结果为True
print(color.red is not color.blue)
输出结果为True

枚举成员可进等值比较
print(color.blue == color.red)
输出结果为Flase
print(color.blue != color.red)
输出结果为True

枚举成员不能进行大小比较  对应值可以比较大小
print(color.red < color.blue)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值