python第十七课——列表生成式
1.列表生成式: 什么是列表生成式? 它就是一串表达式,专门用于生成列表对象,当中包含一系列的业务逻辑; 结构:简介、优雅、阅读性好;比传统获取列表对象来的更加的方便; 它是语法糖的一种; 什么是语法糖? 我们在实际开发中,碰到比较复杂的业务逻辑, 可能导致代码的书写量就上去,语法糖的出现就是在不破坏复杂业务逻辑的同时, 使用更加简便、少的代码量来完成一样的需求, 从而解放程序员,让你享受编码的快感... 格式: [expr for ver1,[ver2] in 序列对象(str、range、list、tuple、set、dict...) if ...] 演示列表生成式的使用以及好处: 需求1:生成1~10的列表
#方式一:不使用列表生成式的方式
print(list(range(,))) #方式二:使用列表生成式的方式
print([x for x in range(,)])
需求2:生成1+1,2+2,3+3,...,10+10的一个列表
#方式一:不使用列表生成式的方式
lt1=[]
for i in range(,):
lt1.append(i**)
print(lt1) #方式二:使用列表生成式的方式
print([x** for x in range(,)])
需求3:生成1+1,2+2,3+3,...,10+10中只保留偶数的乘积值到列表中
#方式一:不使用列表生成式的方式
lt2=[]
for i in range(,):
if i%==:
lt2.append(i**)
print(lt2) for i in range(,):
if i%!=:
lt2.append(i**)
print(lt2) #方式二:使用列表生成式的方式
print([x ** for x in range(,) if x%==])
需求4:实现全接列
a='ABC'
b='XYZ'
效果如下:
['AX','AY','AZ','BX',...,'CZ']
a='ABC'
b='XYZ'
#方式一:不使用列表生成式的方式
lt3=[]
for i in a:
for j in b:
lt3.append(i+j)
print(lt3) #方式二:使用列表生成式的方式
print([x+y for x in a for y in b])
需求5:将字典对象中的键和值得到作为一个元素,存入到列表对象中
dic={'AA':'aa','BB':'bb','CC':'cc',}
效果如下:
['AA=aa','BB=bb','CC=cc']
dic={'AA':'aa','BB':'bb','CC':'cc'}
#方式一:不使用列表生成式的方式
lt4=[]
for k,v in dic.items():
lt4.append(k +'='+v)
print(lt4)
#方式二:使用列表生成式的方式
print([k + '=' + v for k,v in dic.items()])
需求6:将lt=['PYTHON','Java','PHP','UI']中的元素内容都转换小写,然后保存到一个列表中返回
lt=['PYTHON','Java','PHP','UI']
#方式一:不使用列表生成式的方式
lt5=[]
for i in lt:
lt5.append(i.lower())
print(lt5) #方式二:使用列表生成式的方式
print([x.lower() for x in lt])
需求7:将lt=['PYTHON','Java','PHP','UI',100]中的元素内容都转换小写,然后保存到一个列表中返回
lt=['PYTHON','Java','PHP','UI',100]
'''
以下代码会出错:
因为lt列表对象中不仅只有str类型的数据,还有int类型的数据。
而lower()函数是属于str中独有的函数,其他类型不会调用;
异常类型:AttributeError 解决方式如下:
我们可以先使用内置函数isinstance(obj,type),如果返回True,表示类型匹配:
反之,不匹配,返回False
''' print([x.lower() for x in lt])
print([x.lower() for x in lt if isinstance(x,str)])
python第十七课——列表生成式的更多相关文章
- 初学Python(十)——列表生成式
初学Python(十)--列表生成式 初学Python,主要整理一些学习到的知识点,这次是列表生成式. # -*- coding:utf-8 -*- ''''' 列表生成式 ''' #一行代码表达所有 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- python函数式编程,列表生成式
1.python 中常见的集中存储数据的结构: 列表 集合 字典 元组 字符串 双队列 堆 其中最常见的就是列表,字典. 2.下面讲一些运用循环获取字典列表的元素 >>> dic={ ...
- Python学习九:列表生成式
列表生成式,是Python内置的一种极其强大的生成list的表达式. 如果要生成一个list [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] 可以用 range(1 , 10) ...
- python笔记十(列表生成式、字典生成式、生成器、生成器的并行)
一.列表生成式 列表生成式就是python设置的可以用来可以生成列表的. 如要生成一个0-9的列表我们可以通过以下代码实现: >>> list(range(10)) [0, 1, 2 ...
- Python之旅Day5 列表生成式 生成器 迭代器 装饰器
装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 ...
- Python高级特性:列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 最常见的例子: 生成list [, , , , , , , , , ]可以用li ...
- python(20)- 列表生成式和生成器表达式练习Ⅱ
题目一: 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']python= ...
- python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点) --> l = [1, [2, [3, [4, [5, ...
随机推荐
- cmd下命令提示符下杀进程主要有三种方法
https://blog.csdn.net/sunboy2718/article/details/30056787 1.用taskkill命令 1.taskkill /im 进程名称 示例:用task ...
- org.springframework.web.context.ContextLoaderListener 解决办法
最近部署ssm项目在tomcat,tomcat启动的时候发出org.springframework.web.context.ContextLoaderListener 错误 严重: Error con ...
- CassiniDev源码学习 - 可替代IIS的单机Web Form解决方案
最近一个项目是将web版的程序,改为单机版.话说这个web版号称当年十几个人用了至少3个月的时间开发,后来三年还不断有修改,而现在要在1个月内由一个人完成,这简直是不可能完成的任务!直觉告诉我,重写肯 ...
- javascript学习笔记(二)
二.DOM DOM是"Document Object Model"(文档对象模型)的首字母缩写,当创建了一个网页并把它加载到WEB浏览器 中时,DOM就在后台生成,它讲根据你编写的 ...
- [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程
这是小编的一些学习资料,理论上只是为了自己以后学习需要的,但是还是需要认真对待的 以下内容仅供参考,请慎重使用学习 1.AngularJS路由嵌套 Angularjs本身自带路由模块,可以满足通过不同 ...
- Bootstrap学习笔记01
1.Make Images Mobile Responsive 用处: 使图片适配你的页面宽度. 操作: 给图片添加 .img-responsive class属性. <img src= ...
- Nginx的文件夹的别名设计&drupal简洁url
参考:nginx 官方drupal 配置 - Drupal | NGINX 环境:ubuntu14,Nginx1.12, MariaDB5.5.56,PHP7.1.7 需求:1.不同的网站,不要用文件 ...
- Spring Boot—10ModelAndView、Model,以及@ModelAttribute注解
package com.sample.smartmap.controller; import org.springframework.beans.factory.annotation.Autowire ...
- Android MVP Plugin,一键完成MVP结构代码编写
推荐一个Gradle的学习系列,Gradle相关的知识一直很匮乏,难得发现一个不错的系列: http://www.cnblogs.com/davenkin/p/gradle-learning-1.ht ...
- 分布式部署下的报表调用 API调用 权限问题以及性能方案
背景描述: 客户的实际情况是需要在具体系统构架前,通过与厂商讨论确定最终的系统架构方案. 需求是客户自己有管理系统,希望建立一个独立的报表服务器,该报表服务器可以对多个管理系统提供报表服务,不知 ...