Python中利用for表达式创建列表
1、for表达式语法格式及用法
for表达式利用可迭代对象创建新的列表,for表达式也称为列表推导式,具体语法格式如下:
[表达式 for 循环计数器 in 可迭代对象]
例:
a = [ i + i for i in range(0,5) ] print (a) # 返回的是一个列表,打印 [0, 2, 4, 6, 8]
上面的例子中,range相当于包含5个元素(0,1,2,3,4),对表达式 i + i 执行5次,并且把5次执行的值收集起来作为新的列表元素。
2、for表达式添加if条件
for表达式还可以在可迭代对象后面加if条件,for表达式只会迭代符合条件的元素,
例:
a = [ i + i for i in range(0,5) if i % 2 == 0] print (a) # 打印 [0, 4, 8]
上面的例子中,if i % 2 == 0筛选了range中的奇数,只对符合条件的3个元素(0,2,4)进行了迭代。
3、生成器推导式
for表达式把方括号[]改为圆括号(),将会生成一个生成器,生成器同样可以使用for循环迭代,
例:
a = ( i + i for i in range(5) )
print (a)
# 将不再生成列表,而是一个生成器。 打印 <generator object <genexpr> at 0x0000000002691B10>
# 使用for循环迭代生成器
for h in a:
print (h,end = '\t')
# 打印 0 2 4 6 8
4、嵌套for表达式
for表达是也可以使用多个循环,
例:
a = [[i,j] for i in range(5) for j in range(6,8)] print (a) # 打印 [[0, 6], [0, 7], [1, 6], [1, 7], [2, 6], [2, 7], [3, 6], [3, 7], [4, 6], [4, 7]]
上面例子中,相当于如下的嵌套循环:
for i in range(5):
for j in range(6,8):
print ([i,j])
在嵌套的for表达式中,也可以添加if条件,
例:
a = [[i,j] for i in range(5) for j in range(5) if j == i] print (a) #打印 [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]]
上面的例子中,只有当 i 和 j 相等时,才会进行迭代。
参考:
https://www.cnblogs.com/mingmingming/p/11055282.html
Python中利用for表达式创建列表的更多相关文章
- python中利用matplotlib绘图可视化知识归纳
python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...
- (数据科学学习手札145)在Python中利用yarl轻松操作url
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,在诸如网络爬虫.web应用开发 ...
- Python中利用函数装饰器实现备忘功能
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下 " ...
- 彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器
彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器 基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻 ...
- Python中利用原始套接字进行网络编程的示例
Python中利用原始套接字进行网络编程的示例 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构 ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
- python中利用队列asyncio.Queue进行通讯详解
python中利用队列asyncio.Queue进行通讯详解 本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细 ...
- python中的字典(dict),列表(list),元组(tuple)
一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...
- python 中的三元表达式及lambda
一.三元表达式 举一个简单的列子,很多地方都有这样的规定,比如用水或者用电,假设用水价格为3R/立方米,当你每个月用超过7立方米后,超出的水按照3.3R/立方米计价.然后写一个程序计算一个家庭每月的水 ...
随机推荐
- BLUE引擎检查放入装备的名称全名脚本
格式:CHECKDLGITEMNAME 名称 检查条件需要配合QUERYITEMDLG命令 ;========================================== [@main]#AC ...
- IntelliJ IDEA 2017.3尚硅谷-----修改当前主题字体、字体大小、行间距、控制台、注释
- Unity2018破解版安装教程(windows)
最近啊,在研究一些游戏的搭建与算法的创新,所以学习使用unity,下面来跟大家分享Unity2018的安装过程. 1.下载安装包(我的下载地址:链接:https://pan.baidu.com/s/1 ...
- lightoj 1408 概率dp
https://blog.csdn.net/moon_sky1999/article/details/98097470 博主在此,牛逼神犇 #include<bits/stdc++.h> ...
- js语言简介
JS语言概述 JS语言简史 JS语言的起源 网景(Netscape Communication Corperation),1994年,推出第一款商用浏览器,网景浏览器(Netscape Navigat ...
- nginx配置指令auth_basic、auth_basic_user_file及相关知识
参考链接 https://www.jianshu.com/p/1c0691c9ad3c auth_basic_user_file 所需要的密码,可以通过如下方法生成 1)安装htpasswd (yum ...
- Debian 系统修改网卡ens33名称为 eth0
1. 编辑文件 /etc/default/grub 修改下面的值 初始值 GRUB_CMDLINE_LINUX="" 修改后 GRUB_CMDLINE_LINUX="ne ...
- 洛谷 P2058 海港(模拟)
题目链接:https://www.luogu.com.cn/problem/P2058 这是一道用手写队列模拟的一道题,没有什么细节,只是注意因为数不会很大,所以直接用数作为数组下标即可,不用用map ...
- ORACLE_BASE、ORACLE_HOME有什么区别
ORACLE_BASE.ORACLE_HOME有什么区别 ORACLE_BASE下是admin和productORACLE_HOME下则是ORACLE的命令.连接库.安装助手.listener等等 ...
- css 溢出滚动条显示,修改滚动条样式
文本或者内容溢出滚动条显示: a/横纵都出滚动条:css添加属性{overflow:auto;} b/横向滚动条:css添加属性{overflow-x:auto;} c/纵向滚动条:css添加属性{o ...