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);
列表推导式
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);
相关文章推荐
- 【day 12】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(三)
- [置顶] 唐宇迪博士视频课学习day_12
- 《Python 黑帽子》学习笔记 - SSH 端口转发 - Day 12
- day_12 C语言预处理及数组
- Day12
- DNS服务器搭建及配置,尚观Day12
- java学习day12
- 英语每日听写练习 Day 12
- 005 12 A DAY With Cell There are over 5 Billion cell phones in use on the the planet RIGHT NOW How
- 【day-12】KMP的next数组
- 【备战秋招Day 3】经典面试题9-12及在线编程题7-9答案
- day-12
- JAVA基础 day12 线程间通信 多线程一些常用方法
- day12今日内容介绍 1、构造方法 2、this关键字 3、super关键字
- Day 12-02 表单的重复提交&验证码重复提交
- 黑马程序员 Day12 交通灯管理系统
- 《从零开始学Swift》学习笔记(Day 12)——说几个特殊运算符
- 30天自制操作系统day12
- day_1_12 JavaWeb系列学习总结之cookie&session
- 手机卫士day12