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. 为什么有int 和integer

    1.Integer 是对象类型 int是原始类型 适用场合有很大的不同 之所以要把int封装成Integer 型 是因为 很多方法参数就只接收对象类型(Object) 还比如 范型 就只支持 对象类型 ...

  2. Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务

    在连接数据库的时候,有时会遇到一个“ORA12514:监听程序当前无法识别连接描述符中请求的服务”的错误,这个错误其实就是数据库动态注册(关于动态注册会在稍后讲解)不生效,导致监听器无法识别客户端连接 ...

  3. 设计模式学习——工厂模式(Factory Pattern)

    1.有一个工厂,专门生产不同品牌的汽车.当有人需要从此工厂提货的时候,只需要告诉他,要什么品牌的,就可以了,并不关心这些车是怎么生产出来的. 2.以上方式,如果增加品牌的时候,也要修改工厂,有点麻烦. ...

  4. System.Collections空间下的Hashtable类与System.Collections.Specialized下的StringDictionary的一点小区别

    哎.有一周没有写自己的博客. 最近在做一个调用web服务的小程序,没有使用c#自动生成的代理类,而是使用http-get.post.以及soap的方式去请求的,使用这http请求这种方式需要自己去拼参 ...

  5. js-权威指南学习笔记18

    1.除mouseenter和mouseleave外的所有鼠标事件都能冒泡. 2.传递给鼠标事件处理程序的事件对象有clientX和clientY属性,它们制订了鼠标指针相对于包含窗口的坐标. 3.一个 ...

  6. JavaScript中==和===的区别(面试题目)

    ==用于一般比较,===用于严格比较;==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase. 举例说明: "1" == true; //true 类型不 ...

  7. CRM系统新思维

    客户关系管理系统(CRM系统)是管理公司当前以及未来潜在客户的系统,其主要目的是通过优化客户关系实现公司销售业绩的长期增长,它是企业信息系统的核心之一.目前,移动互联网.大数据以及人工智能技术发展日新 ...

  8. ArcGIS for JavaScript 关于路径开发的一些记录(二)

    又是高度集中开发路径模块的一天.真希望自己以后都可以如此的专注和高效(虽然知道很难一直都保持这样的状态,我会坚持的~哈哈哈) 言归正传,今天开发了途径点的功能和改进了些相关起点.终点的代码.先说一下我 ...

  9. C/S模式下的打印方法

     C/S模式使用润乾报表时有两种打印方法(都使用设计器授权) 1.         使用加密狗打印 这种方式需要使用加密狗,适用于客户端较少时 2.         使用api调用打印方法实现打印 ...

  10. idea appliction context not configured for this file

    File --> Project Structure