Python学习九:列表生成式
列表生成式,是Python内置的一种极其强大的生成list的表达式。
如果要生成一个list [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] 可以用 range(1 , 10):
- >>> range(1, 9)
- [1, 2, 3, 4, 5, 6, 7, 8]
可是,如果要生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎么做呢?可以使用循环:
- >>> L= []
- >>> for x in range(1 , 10):
- ... L.append(x*x)
- ...
- >>> L
- [1, 4, 9, 16, 25, 36, 49, 64, 81]
而列表生成式,可以用一句代替以上的繁琐循环来完成上面的操作:
- >>> print [x*x for x in range(1 , 11)]
- [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- >>>
列表生成式的书写格式:[x*x for x in range(1 , 11)]
第一:把要生成的元素 x*x 放到前面
第二:后面跟上for循环
这样就可以把list创建出来。
for循环后面还可以加上if判断,这样可以筛选出偶数的平方:
- >>> [x*x for x in range(1 , 11) if x%2 == 0]
- [4, 16, 36, 64, 100]
- >>>
当然,可以使用两层循环,生成全排列:
- >>> print [m + n for m in 'ABCD' for n in 'XYZ']
- ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ', 'DX', 'DY', 'DZ']
- >>>
如何使用两个变量来生成list:
- d = {'Java':"99" , 'C':"99" , 'C++':"99" }
- L = [k+'='+v for k , v in d.iteritems()]
- print L
最后来做一个练习:
L = ['Java' , 'C' , 'Swift' , 'Python' , 123] , 现在有 list 中包含字符串,和整数,把list中得大写字符转为小写,推到出另外一个list":
1、使用内建的isinstance函数可以判断一个变量是不是字符串
2、s.lower() 可以将一个大写字母转为小写。
3、增加if语句保证列表生成式正确执行。
代码如下:
- L = ['Java' , 'C' , 'Swift' , 'Python' , 123]
- print [s.lower() if isinstance(s , str) else s for s in L ]
Python学习九:列表生成式的更多相关文章
- python学习笔记——列表生成式与生成器
1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...
- Python学习笔记 - 列表生成式listComprehensions
#!/usr/bin/env python3 # -*- coding: utf-8 -*- list(range(1, 11)) # 生成1乘1,2乘2...10乘10 L = [] for x i ...
- Python开发的入门教程(九)-列表生成式
介绍 本文主要介绍Python中列表生成式的基本知识和使用 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >&g ...
- Python学习02 列表 List
Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...
- Python中的列表生成式和多层表达式
Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...
- python 迭代 及列表生成式
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...
- (python函数02)列表生成式
(python函数02)列表生成式 示例代码 num = [i for i in range(1, 10)] print(num) num = [i for i in range(1, 10) ...
- Python自学笔记-列表生成式(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 列表生成式 列 ...
- python基础:列表生成式和生成器
列表生成式(List Comprehension) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成 list ...
随机推荐
- redis 报Operation against a key holding the wrong kind of value警告的解决方法
WRONGTYPE Operation against a key holding the wrong kind of value github:https://github.com/antirez/ ...
- apache故障处理
注意:修改虚拟机主机html路径不需要修改主配置这一行. DocumentRoot "/var/www" 1.Permission denied: [client 10.10.2. ...
- 设计模式——外观模式(Facade)
1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性. 例子1:一个电源总开关可以控制四盏灯 ...
- iOS设置拍照retake和use按钮为中文简体
iOS设置拍照retake和use按钮为中文简体,设置有两种方式一个是代码直接控制,第二就是xcode配置本机国际化为“china”(简体中文). 本文重点要说的是第二种,这样配置有两个好处,一是操作 ...
- 转战Hexo
从之前的转战farbox,到现在又转战Hexo,真是不折腾不成魔.要说farbox有什么不好,可能唯一的不好就是它要求与Dropbox关联吧,这对于大部分国内用户来说是无法接受的,写文章之前一想到还要 ...
- UVA 11600 Masud Rana
题目大意:有一个n个点的完全图,有些路上有妖怪.现在一个人从一号点出发,每天随机走向另一个点,消灭路上的妖怪,问平均几天后所有点之间存在没有妖怪的路径.点数≤30. 看到点这么少肯定状压,看见存不下肯 ...
- EL表达式隐式对象
用户输入界面 ---------------------------------------------------------------------------------------- < ...
- ES6 数组的扩展
1. Array.from() Array.from()将类数组(array-like)对象与可遍历的对象转化为数组并返回. 下面是一个类数组 let arr = { '0':'a', '1':'b' ...
- 使用Linux 安装MySQL
文章 link 在安装mysql数据库服务器前,确保你的linux系统是可以连接网络的,下面我们将通过源码方式来安装mysql首先通过putty登入进你的Linux系统,确保系统中已经安装的gcc ...
- TreeMap源码
一.TreeMap简介 TreeMap是基于红黑树的java版实现,作者Josh Bloch and Doug Lea(这二人在java发展的早期做了重大贡献,比如集合框架JDK1.2.并发包JDK1 ...