python:列表生成器
今天来聊聊python的列表生成器
最简单的:
[x for x in range(10)]
得到的结果是:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
稍微复杂一点的:
[x for x in 'abcdefg']
结果:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
没错,这个可以把字符串转成单个字符的列表
msg='abcdefg'
print([x for x in msg])
结果:
总之,这样可以把一个可迭代对象拆开,比如:
这样(字典):
msg={1:'abc',2:'bbc'}
print([x for x in msg.items()])
结果:
这样(集合):
msg={'abc',2}
print([x for x in msg])
结果:
还有这样(元组):
msg=('abc',2,3,'4')
print([x for x in msg])
结果:
另外还有操作可以给生成的列表加一些条件:
msg=('abc',2,3,'4','567')
print([x for x in msg if isinstance(x,int)])
结果:
或者多重循环的嵌套:
msg1=('a','b','c')
msg2=(1,2,3)
print([x+str(y) for x in msg1 for y in msg2] )
结果:
那么我们要知道从三个集合里面取出来的元素所有的组合(注意不是排列)就可以这样:
msg1=('a','b','c')
msg2=(1,2,3)
msg3=('%','$')
res=[(x,y,z) for x in msg1 for y in msg2 for z in msg3]
print(res)
print(len(res))
结果:
[('a', 1, '%'), ('a', 1, '$'), ('a', 2, '%'), ('a', 2, '$'), ('a', 3, '%'), ('a', 3, '$'), ('b', 1, '%'), ('b', 1, '$'), ('b', 2, '%'), ('b', 2, '$'), ('b', 3, '%'), ('b', 3, '$'), ('c', 1, '%'), ('c', 1, '$'), ('c', 2, '%'), ('c', 2, '$'), ('c', 3, '%'), ('c', 3, '$')]
18

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
PHP rand函数
<?phpecho rand() . "n"; //得到一个不定位数的随机数 echo rand(10, 15); //在10~15之间取一个数?>
-
下一篇
我可能是个假程序员!50个程序猿笑话程序猿最烦两件事
程序员最烦的是什么?50个程序猿笑话程序猿最烦两件事。没错,就是这2件事情……梁健也烦! 1、程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。 2、程序猿的读书历程:x语言入门—>x语言应用实践—>x语言高阶编程—>x语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。 3、还没上大学的时候,高三暑假,跑到家那边的图书城想买传说中的C++的书,然后看到一本C#,我一看,嘿,这个++还写得挺艺术的,重叠起来了,于是把C#买了回来…… 4、问:程序猿最讨厌康熙的哪个儿子?答:胤禩,因为他是八阿哥(bug)。 5、有一天,程序猿们突然发现他们要涨的工资掉到井里啦!大家都很害怕,连忙一个吊着一个,从树上伸到井里去捞工资。正好他们摸到工资的时候,一个老程序员忽然兴奋的大叫:别蠢了,要涨的工资还好好的挂在天上呢! 6、诸葛亮是一个优秀的程序猿,每一个锦囊都是应对不同的case而编写的!但是优秀的程序猿也敌不过更优秀的bug!六出祈山,七进中原,鞠躬尽瘁,死而后已的诸葛亮只因为有一个错误的cas...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池