博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 列表生成器
阅读量:4634 次
发布时间:2019-06-09

本文共 710 字,大约阅读时间需要 2 分钟。

 

1. 列表里生成器相比range()生成的列表

生成一个列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可用range(1,11)

L = range(1,11)# print L# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果要生成一个[1x1, 2x2, 3x3, ..., 10x10]怎么做?用for循环

L = []for x in range(1,11):L.append(x*x)# print L# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是循环太繁琐了,列表生成器就一行语句解决问题:

L = [x*x for x in range(1,11)]# 生成列表L=[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

2. 列表生成器中也可以加上if判断

L = [x*x for x in range(1, 11) if x%2 == 0]#print L#[4, 16, 36, 64, 100]

该列表生成器的执行顺序是:先执行for语句,x取到值;然后执行if语句做判断;再执行数学表达式。结果存入列表中。

 

3. 列表生成器中使用两层循环。

L = [m+n for m in 'ABC' for n in 'XYZ']# print L# ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

三层和三层以上的循环就很少用到了。

转载于:https://www.cnblogs.com/haoshine/p/5093472.html

你可能感兴趣的文章
Delphi TScrollBar 用于滚动窗口、组件内容
查看>>
【微信开发】上传下载多媒体文件
查看>>
java道路级别
查看>>
扩展方法
查看>>
vue事件
查看>>
Docker在Ubuntu16.04上安装
查看>>
python爬虫学习之页面登陆
查看>>
SPOJ-OPTM Optimal Marks ★★(按位建图 && 最小割)
查看>>
H264/AVC视频解码时AVC1和H264的区别
查看>>
SRAM与SDRAM的区别
查看>>
如何不使用pthread_cancel而杀死线程
查看>>
[笔记]VI编辑器的学习
查看>>
过滤器与拦截器区别
查看>>
USACO 1.5.4 Checker Challenge
查看>>
第二阶段站立会议7
查看>>
[18]Debian Linux Install GNU GCC Compiler and Development Environment
查看>>
12种排序算法
查看>>
mac 下的操作
查看>>
Safengine Android so加密
查看>>
docker学习4-docker安装mysql环境
查看>>