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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS6,CentOS7官方镜像安装Oracle11G
- Linux系统CentOS6、CentOS7手动修改IP地址
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用