列表推导式,字典推导式,集合推导式
推导式又称生成式,支持列表、字典和集合的推导式。同样的需求推导式代码更少,能简化代码。列表推导式
作用:用一个表达式创建一个有规律或控制一个有规律的列表,又称列表生成式。# while 循环实现0-9的列表。 list1 = [] i = 0 while i < 10: list1.append(i) i += 1 print(list1) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # for 循环实现1-9的列表。 list2 = [] j = 10 for j in range(1, 10): list2.append(j) print(list2) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9] # 列表推导式实现。 list3 = [i for i in range(10)] print(list3) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
创建0-10的偶数列表。# 方法1:使用range步长控制实现。 list1 = [i for i in range(0, 10, 2)] print(list1) # 输出:[0, 2, 4, 6, 8] # 方法2:使用for循环加if语句实现。 list2 = [] j = 0 for j in range(10): if j % 2 == 0: list2.append(j) j += 1 print(list2) # 方法3:使用带if语句的推导式。 list3 = [j for j in range(10) if j % 2 == 0] print(list3)
创建下面的列表:
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]list1 = [] for i in range(1, 3): for j in range(3): list1.append((i, j)) print(list1) # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] # for循环实现列表推导式 list2 = [(i, j) for i in range(1, 3) for j in range(3)] print(list2) # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]字典推导式
字典推导式的作用:快速合并列表为字典或提取字典中目标数据。
示例1:创建一个字典,key是1-5的数字,value是这个数字的3次方。dict1 = {i : i**3 for i in range(1, 6)} print(dict1) # {1: 1, 2: 8, 3: 27, 4: 64, 5: 125}
示例2:将两个列表进行合并。list1 = ["name", "age", "gender", "QQ"] list2 = ["TIM", 18, "man"] # 如果两个列表水元素个数相同,len统计人一个一个列表长度可以, # 如果不等,需要统计len长度少的,否则会报错。 dict2 = {} dict2 = {list1[i]:list2[i] for i in range(len(list2))} print(dict2) #{"name": "TIM", "age": 18, "gender": "man"}
示例3:提取字典中的目标数据。# 提取列表中分数大于80分的字典数据。 score = {"Lily": 100, "TIM": 69, "Kevin" : 83, "Linda" : 45} # 首先获取所有数据,判断value大约200,返回字典。 print(score.items()) dict2 = {key: value for key,value in score.items() if value >= 80} print(dict2)集合推导式
示例1:创建一个集合,数据为列表元素的2次方。list1 = [0, 1, 1, 2, 3] set1 = {i**2 for i in list1} print(set1) # {0, 1, 4, 9} 集合有去重功能
全额退款?雷军在小米MIX4发布会宣布了一个重要的决定昨晚小米MIX4终于发布了,这个也是大家期待已久的产品,这款手机无论工艺还是性能等都是当今手机最好的。当然笔者今天谈谈雷军在发布会上的一个决定,这个让老米粉感动哭了。我们知道199
小米MIX4是否值得购买?网友问得有点多余昨天小米发布了两款重磅的产品,当然还有其他产品,这里笔者就谈这两个,一个是小米平板5,很多人都期待的,并且笔者也参与了预定,想要顶配的还是挺难的。就是非常难买,可想而知,这款平板还
大数据入门HbaseRowkey设计在Hadoop技术生态体系当中,Hbase作为分布式数据库而存在,也可以说是业界最早最经典的一个分布式数据库。Hbase的原型来自Google的BigTable,各方面性能优异,这
参股券商公司值得期待大盘可能二次向上,作为券商股,第一波的引领作用竖立了中国股市向牛的标杆,两个月过去了,又是证券股带领大盘盘整了两个月的朦胧期,向上突破的坚实力量。但这次的证券不可能是一路高歌猛进的
大数据开发基于Hadoop的数仓设计企业级的大数据平台,Hadoop至今仍然占据重要的地位,而基于Hadoop去进行数据平台的架构设计,是非常关键且重要的一步,在实际工作当中,往往需要有经验的开发工程师或者架构师去完
Java大数据入门SpringMVC框架原理作为Spring家族系列的重要一份子,SpringMVC可以说在企业级开发市场上,备受青睐。作为轻量级的Java开发框架,SpringMVC确实有其值得称赞之处,也是Java学习阶
大数据入门Java基础要掌握哪些?在大数据当中,对于Java基础部分的学习,其实也是非常重要的一个部分。在执行大数据开发任务时,Java是主流的开发语言,也是大数据开发者们的主要工具。今天的大数据入门分享,我们就来
Java大数据开发Java基础类库和API作为大数据重要基础的Java语言,在大数据学习当中的重要性还是非常高的。Java作为一门有着悠久历史的语言,想要学好还是有很多可参考借鉴的学习思路的。今天的Java大数据开发分享,
Java大数据基础从Spring到SpringBootSpring家族系列,作为Java开发当中的重要基础,也是大数据学习入门需要去着重掌握的部分。在Spring家族当中,Spring和SpringBoot是一定会接触到的两个重要概念
大数据开发OLAP开源数据分析引擎简介针对于不断新增的海量数据资源,企业需要通过及时地数据分析处理,才能从中挖掘出价值线索,反哺业务,实现数据驱动业务发展。而企业级的数据分析场景,多是采用OLAP数据分析引擎。今天的大
大数据开发Hive小文件合并Hadoop生态技术体系下,负责大数据存储管理的组件,涉及到HDFSHiveHbase等。Hive作为数据仓库工具,最初的存储还是落地到HDFS上,这其中就有一个关键的环节,是小文