Python学习札记(十七) 高级特性3 列表生成式

参考:列表生成式

Note

1.List Comprehensions,即列表生成式,是Python中内置的非常强大的list生成式。

eg.生成一个列表:[1*1, 2*2, ..., 10*10]

使用for...in的方法:

#!/usr/bin/env python3L1 = []for i in range(1, 11) :L1.append(i*i)print(L1)

使用列表生成式:

L2 = [i*i for i in range(1, 11)]print(L2)

output:

sh-3.2# ./listcomprehensions1.py 
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.列表生成式可以在后面加上条件判断:

eg.符合 (i*i)%2==0 要求

L3 = [i*i for i in range(1, 11) if (i*i)%2 == 0]print(L3)

output:

[4, 16, 36, 64, 100]

3.也可以使用两层循环:

L4 = [i+j for i in range(1, 11) for j in range(1, 11)]print(L4)
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
L5 = [i+j for i in 'ABC' for j in 'abc']print(L5)
['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']

4.使用列表生成式能简化代码,如输出当前目录的文件名:

import osL6 = [i for i in os.listdir('.')] # listdir()print(L6)
['listcomprehensions1.py']

5.对于dict来说,列表生成式也可以生成key-value的list:items()方法

dic = {'Chen': 'Student', '952693358': 'QQ', 'Never-give-up-C-X': 'WeChat'}L7 = [x+'='+y for x, y in dic.items()]print(L7)
['952693358=QQ', 'Chen=Student', 'Never-give-up-C-X=WeChat']

6.将字符串变成小写字符串:lower()函数

str1 = 'HeyGirl'L8 = [i.lower() for i in str1]print(L8)
['h', 'e', 'y', 'g', 'i', 'r', 'l']

Practice

如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:

>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L]
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "<stdin>", line 1, in <listcomp>
AttributeError: 'int' object has no attribute 'lower'

使用内建的isinstance函数可以判断一个变量是不是字符串:

>>> x = 'abc'
>>> y = 123
>>> isinstance(x, str)
True
>>> isinstance(y, str)
False

提供:L1 = ['Hello', 'World', 18, 'Apple', None]

期待输出L2 = [L1中属于字符串的元素的小写]

Ans:

#!/usr/bin/env python3L1 = ['Hello', 'World', 18, 'Apple', None]L2 = [i.lower() for i in L1 if isinstance(i, str)]print(L2)
sh-3.2# ./listcomprehensions2.py 
['hello', 'world', 'apple']

2017/2/6

转载于:https://www.cnblogs.com/qq952693358/p/6371395.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel取html文本长度,excel字符长度 怎么计算excel里的字符串的长度

请教&#xff1a;在EXCEL中如何统计字符长度&#xff1f;打开excel文件&#xff0c;确定需要编辑的内容选择功能区的“公式”功能在公式中选择“LEN”功能在text中选择需要编辑的单元格 7、点击“确定” 8、系统自动计算出了单元excel中怎么判断字符串的长度在Excel中可以使用两…

Java学习之String StringBuffer StringBuilder区别

1.String&#xff1a;对象长度是不可变的&#xff0c;是线程安全。 2.StringBuffer&#xff1a;对象长度是可变的&#xff0c;是线程安全。 3.StringBuilder&#xff1a;对象长度是可变&#xff0c;不是线程安全。转载于:https://www.cnblogs.com/michaelShao/p/6372556.html

计算机找不到管理无线网络,电脑wifi密码忘了 并且找不到管理无线网络该怎么处理?...

电脑能连无线网而不能连有线网怎么办你的网卡的TCP/IP协议&#xff0c;设置了自动获取IP地址&#xff0c;然而你的局域网中不存在可以让你的机器得到IP地址的DHCP服务器。所以你的IP地址没有获取到&#xff0c;当然是受限制或无连接。解决方法是&#xff0c;为每个网卡设置一个…

Java虚拟机(JVM)默认字符集详解

Java中对字符串等进行转换字节数组时, 需要根据字符集编码来进行转换, 当不显示的指定字符集编码时(如: "测试".getBytes()), 会使用Charset.defaultCharset()获取到的字符集编码进行转换! 相关代码如下: 上面的代码可以看出, 在JVM中defaultCharset()是在初始化阶段…

计算机本地用户删除后怎么恢复,Default User文件夹被删了怎样恢复

满意答案opposities2013.06.06采纳率&#xff1a;80% 等级&#xff1a;24已帮助&#xff1a;17327人1、开机后出现“Windows 不能加载本地存储的配置文件。此问题的可能原因是安全权限不足或本地配置文件损坏。如果此问题持续存在&#xff0c;请与您的网络管理员联系。倒数3…

08-SSH综合案例:前台用户模块:注册页面的前台JS校验

这个是MyEclipse设置的问题 把设置去掉就没问题了。 你也可以在每一个input后面加个span来显示提示的信息。这些东西也要提交到后台&#xff0c;后台也是要对这些东西进行校验的。转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6377756.html

html绘制波形图,JS实现波形图

一直想写个波线图&#xff0c;但写出来发现这是点阵组成的&#xff0c;不知道如何把线条弄的特别的平滑&#xff0c;有会的&#xff0c;求留言评论指导。1.[代码][JavaScript]代码Document.container{width:500px;height:500px;border:1px solid #DEDEDE;}.container span{widt…

sql 中on和where的区别

table a(id, type): id type ---------------------------------- 1 1 2 1 3 2 table b(id, class): id class --------------------------------- 1 1 2 2 sql语句1&#xff1a;select a.*, b.* from a left j…

计算机管理员无法创建密码,找到电脑管理员的密码

轻松找回遗忘的WinXP管理员密码很多“不拘小节”的朋友在使用电脑时&#xff0c;经常是昨天改了Windows XP帐户密码&#xff0c;今天便忘记了内容&#xff0c;把自己锁在“门外”的情况时有发生。对此&#xff0c;大多数朋友只能痛苦的去重新安装系统。其实如果你有以下的条件&…

上传文件插件(plupload)

引入插件&#xff1a; <script src"../../static/js/plupload.full.min.js"></script> /** 上传文件配置* *///配置uploadervar uploader new plupload.Uploader({runtimes: html5,flash,silverlight,html4,browse_button : uploader,url:/delivery/bat…

计算机网络项目实训教程课后答案,计算机网络项目实训教程

摘要&#xff1a;《计算机网络项目实训教程》是专门为Nikon D700相机用户或潜在用户量身定制的实用型图书.将官方手册中抽象的功能描述及没有讲清楚的内容,通过实拍测试及精美照片示例具体地展现出来,特别是精选的摄影玩家实际使用经验与技巧,让您感觉身边时刻有"高手点拨…

如何正确的做事

职场中&#xff0c;常常遇见下列两种人&#xff0c;一种是永远处在无休止忙碌状态&#xff0c;却事倍功半的人&#xff0c;一种是处理工作十拿九稳&#xff0c;经常事半功倍的人。 同样都是做事&#xff0c;造成两种结果的原因究竟是什么呢&#xff1f;答案其实很简单。前者&am…

北大计算机科学与技术专业河南录取分数线,北京大学河南录取分数线|2021北京大学河南分数线|2021年北京大学河南高考分数线|2021年北京大学河南招生计划录取人数...

北京大学2014年在河南省高考录取工作顺利结束。今年北大在豫共录取考生200名&#xff0c;其中全省理科第一名曹林菁、文科投档分第一名齐华瑞和文科实考分第一名齐思涵三位全省最高分考生均选择进入北京大学。今年北大在豫招生无论是总体招生数量还是顶尖高分考生录取&#xff…

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight是几个困惑了好久的元素属性&#xff0c;趁着有时间整理一下 1. clientWidth 和 clientHeight 网页中的每个元素都具有 clientWidth 和 clientHeight 属性&#xff0c;表示可视区域的宽高&…

计算机组成原理题库带答案详解,计算机组成原理试试题库(含答案解析) -.doc

Word文档下载可编辑专业技术资料计算机组成原理试题一、单项选择题(从下列各题四个备选答案中选出一个正确答案&#xff0c;并将其代号写在题干前面的括号内。)1.为了缩短指令中某个地址段的位数&#xff0c;有效的方法是采取(C)。A、立即寻址B、变址寻址C、间接寻址 D、寄存器…

51Nod--1100-斜率最大

51Nod--1100-斜率最大 1100 斜率最大平面上有N个点&#xff0c;任意2个点确定一条直线&#xff0c;求出所有这些直线中&#xff0c;斜率最大的那条直线所通过的两个点。 &#xff08;点的编号为1-N&#xff0c;如果有多条直线斜率相等&#xff0c;则输出所有结果&#xff0c;按…

张掖计算机职称考试,甘肃省张掖市2018年3月计算机等级考试公告

&nbsp&nbsp[导读]:甘肃省张掖市2018年3月计算机等级考试甘肃省2018年3月全国计算机等级考试报名时间&#xff1a;2017年12月13日—2018年01月7日&#xff0c;打印准考证时段&#xff1a;2018年3月11—26日甘肃省张掖市2018年3月计算机等级考试公告一、报考条件考生不受…

【多视图几何】TUM 课程 第2章 刚体运动

课程的 YouTube 地址为&#xff1a;https://www.youtube.com/playlist?listPLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4 。视频评论区可以找到课程所使用课件与练习题的下载地址。 课程第2章从李群与李代数的角度介绍三维空间的刚体运动。李群即常见的旋转矩阵、变换矩阵&#xff0c;…

计算机教师成长计划,2020年信息技术教师个人工作计划

本学期我主要担任以下几个方面的工作&#xff1a;初二1到10班的信息技术课的教学工作以及学生的信息学奥赛小组的辅导工作以及学校安排的信息技术方面的日常工作等。同时本学期还有一个重要工作就是做一个完整的信息技术课题——初中信息技术基于小组协作竞争环境的“任务驱动”…

查询成绩小于85且是计算机的一项应用,查询练习2

查询练习创建表学生表student学号姓名性别出生日期班级create table student(sno varchar(20) primary key,sname varchar(20) not null,ssex varchar(10)not null,sbirthday datetime,class varchar(20));课程表Course课程号课程名称教师编号create table course(cno varchar(…