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, ...
随机推荐
- SQL查询几种的区别。
最近看了几篇SQL查询的文章做一下总结哦,大概简记如下: SQL查询的实质是,是指从数据库中取得数据的子集,可以先取列子集,然后再取符合条件的行子集. 1.单表查询: SELECT [Name] ,[ ...
- Apache Spark Exception in thread “main” java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
问题: 今天用Maven搭建了一个Spark的Scala项目,运行后遇到下面异常: Apache Spark Exception in thread “main” java.lang.NoClassD ...
- 请整体描述Java异常体系
java把异常当做对象来处理,并定义一个基类Throwable作为所有异常的超类.在java API中已经定义了许多异常的类,这些异常分为两大类,错误Error和异常Exception.其中异常Exc ...
- Hibernate中查询优化策略
Hibernate查询优化策略 ² 使用延迟加载等方式避免加载多余数据 ² 通过使用连接查询,配置二级缓存.查询缓存等方式减少select语句数目 ² 结合缓存机制,使用iterate()方法减少查询 ...
- HTML5:'data-'属性的作用是什么
在大家查看HTML时,经常会看到data-role.data-theme等的使用,比如:通过如下代码即可实现页眉的效果: <div data-role="header"> ...
- 在arcgis使用python脚本进行字段计算时对中文的处理方案
一.引言 在arcgis打开一个图层的属性表,可以对属性表的某个字段进行计算,但是在平常一般都是使用arcgis提供的字段计算器的界面进行傻瓜式的简答的赋值操作,并没有使用到脚本对字段值进行逻辑的操作 ...
- Django基础九之中间件
一 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上 ...
- mysql_real_escape_string与mysqli_real_escape_string
参考 mysql_real_escape_string mysqli_real_escape_string mysql_real_escape_string是用来转义字符的,主要是转义POST或GE ...
- thinkphp3.2 success方法注意
success方法的url一定要用U()方法来生成, $this->success('修改成功',U('showlist'),3);
- CentOS7系列--1.3CentOS7用户管理
CentOS7用户管理 1. 添加用户 [root@centos7 ~]# useradd jack [root@centos7 ~]# passwd jack Changing password f ...