推导:列表推导式、字典推导式、集合推导式
列表推导式
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);