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第十七课——列表生成式的更多相关文章

  1. 初学Python(十)——列表生成式

    初学Python(十)--列表生成式 初学Python,主要整理一些学习到的知识点,这次是列表生成式. # -*- coding:utf-8 -*- ''''' 列表生成式 ''' #一行代码表达所有 ...

  2. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  3. python函数式编程,列表生成式

    1.python 中常见的集中存储数据的结构: 列表 集合 字典 元组 字符串 双队列 堆 其中最常见的就是列表,字典. 2.下面讲一些运用循环获取字典列表的元素 >>> dic={ ...

  4. Python学习九:列表生成式

    列表生成式,是Python内置的一种极其强大的生成list的表达式. 如果要生成一个list [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] 可以用 range(1 , 10) ...

  5. python笔记十(列表生成式、字典生成式、生成器、生成器的并行)

    一.列表生成式 列表生成式就是python设置的可以用来可以生成列表的. 如要生成一个0-9的列表我们可以通过以下代码实现: >>> list(range(10)) [0, 1, 2 ...

  6. Python之旅Day5 列表生成式 生成器 迭代器 装饰器

    装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 ...

  7. Python高级特性:列表生成式

    列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 最常见的例子: 生成list [, , , , , , , , , ]可以用li ...

  8. python(20)- 列表生成式和生成器表达式练习Ⅱ

    题目一: 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']python= ...

  9. python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04

    递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)   -->  l = [1, [2, [3, [4, [5, ...

随机推荐

  1. F#注解

    不要问我为啥要学F#——因为气质摆在那里 标注:以下内容均来自 anderslly F#系列 1.类型推演 let square x = x * x //接受一个某类型参数的quare函数返回一个这个 ...

  2. [PHP] 超全局变量$_FILES上传文件

    1.$_FILES --超全局变量,HTTP 文件上传变量 通过 HTTP POST 方式上传到当前脚本的项目的数组,PHP 能够接受任何来自符合 RFC-1867 标准的浏览器上传的文件, 上传的过 ...

  3. [android] 手机卫士黑名单功能(短信拦截)

    前面我们把需要拦截的手机号都存储和展示出来了,接下来是使用广播接收者拦截短信了,这个广播接收者需要和一个服务绑定,服务开启的时候,接收者存在,服务停掉时,接收者关闭 在service包下定义一个类Ca ...

  4. 使用外部属性文件配置Bean以及Bean的生命周期方法

    1.使用外部属性文件配置Bean 在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean ...

  5. Leetcode 计划

    如何正确高效地使用LeetCode? LeetCode按照怎样的顺序来刷题比较好? LeetCode 题目总结/分类 Leetcode 简略题解 - 共567题 500. Keyboard Row [ ...

  6. MVC 中文显示乱码问题

    在学习中遇到中文乱码的问题,在网上搜了一下大神的解决方法,总结了一点知识点. 项目中的代码 //GET: /HelloWorld/Welcome/ public string Welcome(stri ...

  7. Linux学习8-Linux常用命令(4)

    链接命令     命令名称:ln 命令英文原意:link 命令所在路径:/bin/ln 执行权限:所有用户 功能描述:生成链接文件 语法:ln 选项[-s][原文件] [目标文件] 选项: -s 创建 ...

  8. Django HTML 转义

    HTML转义 模板对上下文传递的字符串进行输出时,会对以下字符自动转义 小于号< 转换为< 大于号> 转换为> 单引号' 转换为' 双引号" 转换为 " 与 ...

  9. HTML5之新增的属性和废除的属性 (声明:内容节选自《HTML 5从入门到精通》)

    新增的属性 1.表单相关的属性 ———————————————————————————————————————————————————————— •autocomplete 属性 autocomple ...

  10. 关于WebSocket协议

    WebSocket是单个TCP连接上进行全双工通信的协议 在WebSocket的API中,客户端与服务器只需要进行一次握手就可以保持持久的连接,并可以双向传输数据 与HTTP不同的是,WebSocke ...