Day 12

推导:列表推导式、字典推导式、集合推导式


列表推导式

1.例:整除3的数字0-100

nums=[];

for i in range(100):

    if i%3==0:

        print(nums.append(i));


print(nums);


n=[ i for i in range(100) if i%3==0 ]

print(n);


2.调用函数

def squared(x):

    return x*2;

wq=[];

q=[];

for x in range(30):

    if x%3==0;

        wq.append(squared(x));


q=[squared(y) for y in range(30) if y%3==0]

print(wq);

print(q);


3.使用()生成genertor,将列表推导式的【】改成()即可得到生成器。---yeild

def squared(x):

    return x*2;

q=(squared(y) for y in range(30) if y%3==0);

print(type(q));

print(q);


字典推导式

    字典推导式和列表推导的使用方法是类似的,只不过中括号改成大括号

1.快速更换key和value

mcase={'a':10,'b':34};

for k,v in mcase.items():#items可替换成keys

    print(k,v);

mk={v:k for k,v in mcase.items()}

print(mk);


集合推导式

1.他们和列表推导式也是类似的。唯一的区别在于它使用大括号{}

strings={'a','is','with','if','file','exception'}

l={len(s) for s in strings};

print(l);


2.0-9的2次方

l=[i*i for i in range(10)];

print(l);


3.将单词长度大于3的转为大写输出

names=['a','is','with','if','file','exception'];

a=[name.upper() for name in names if len(name)>3]

print(a);


4.求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元组列表

b=[(x,y) for x in range(6) for y in range(6) if x%2==0 and y%2==1]

print(b);


5.求m中3,6,9组成的列表

m=[[1,2,3],[4,5,6],[7,8,9]];

c=[row[2] for row in m];

print(c);


6.求m中1,5,9组成的列表

m=[[1,2,3],[4,5,6],[7,8,9]];

d=[m[i][i] for i in range(len(m))];

print(d);


7.求m,n中矩阵和元素的乘积

m=[[1,2,3],[4,5,6],[7,8,9]];

n=[[2,2,2],[3,3,3],[4,4,4]];

e=[m[i][j]*n[i][j] for i in range(len(m)) for j in range(m[i])];

print(e);


8.如果两个元素之间不相等的话,结合两个列表的元素

m=[[1,2,3],[4,5,6],[7,8,9]];

n=[[2,2,2],[4,,4,4],[7,7,7]];

L=[(m[i][j],n[i][j]) for i in range(3) for j in range(3)];

print(L);







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值