您的位置:首页 > 其它

Day 12

2018-02-24 21:41 141 查看
推导:列表推导式、字典推导式、集合推导式

列表推导式
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: