看个例子:

# 定义一个列表
l=[1,2,3,4,5]
#()用于创建一个list,结果依次返回列表l的元素的平方,返回list
s=[i*i for i in l]
# 打印列表s
print(s)
# ()用于创建一个生成器,结果依次返回列表l的元素的平方,返回generator
s1=(i*i for i in l)
# 以列表形式打印generator的元素值
print(list(s1))
# 查看s1的类型
print(type(s1))

输出:

[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
<class 'generator'>

1、列表生成式即List Comprehensions,如何生成列表:

a=list(range(1,11))
print(a)
print(type(a))

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
<class 'list'>

2、如果要生成一个[1*1,2*2,......,10*10]的列表:

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

输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3、根据列表[1*1,2*2,......,10*10],帅选出偶数的平方的一个列表:

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

输出:[4, 16, 36, 64, 100]

4、使用两层循环,可以生成全排列

a=[m+n for m in "xyz" for n in "ABC"]
print(a)

输出:['xA', 'xB', 'xC', 'yA', 'yB', 'yC', 'zA', 'zB', 'zC']

三层循环很少用到

5、for循环迭代一个dict,dict的items可以同时迭代key和value,使用两个变量生成一个list:

a={'a':'A','b':'B','c':'C'}
b=[key +'='+value for key,value in a.items()]
print(b)

输出:['a=A', 'b=B', 'c=C']

6、把一个list所有的字母变成小写:

a={'Abc','Hello','APPLE'}
b=[i.lower() for i in a]
print(b)

输出:['apple', 'abc', 'hello']

假如list中含有数字则会报错:AttributeError: 'int' object has no attribute 'lower'

a={'Abc','Hello','APPLE',18}
b=[i.lower() for i in a if type(i)==str]
print(b)

输出:['abc', 'hello', 'apple']

python:列表生成式的学习的更多相关文章

  1. Python列表生成式(入门9)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407984.html 本文出自:[Edwin博客园] Python列表生成式 1. 生成列表 L = [] ...

  2. Python 列表生成式 & 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  3. Python 列表生成式、生成器、迭代器

    列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么 ...

  4. python列表生成式

    在Python编程中,list列表应用的比较广泛,而列表生成式是一个非常强大但是使用很简单的功能. 比如要生成1到100的数组列表[1,2,3,4......,97,98,99,100],可以使用li ...

  5. python 列表生成式,生成器&迭代器

    列表生成式: 需求:要对列表 [0,1,2,3,4,5,6,7,8,9]的每个元素加1 用列表生成式一步搞定: li = [i+1 for i in range(10)] # 这种写法就叫列表生成式 ...

  6. 初学Python——列表生成式、生成器和迭代器

    一.列表生成式 假如现在有这样一个需求:快速生成一个列表[1,2,3,4,5,6,7,8,9,10],该如何实现? 在不知道列表生成式的情况下,可能会这样写: a=[1,2,3,4,5,6,7,8,9 ...

  7. 【370】Python列表生成式(for 写入一行)

    参考: python用列表生成式写嵌套循环的方法_python_脚本之家 参考: python之列表生成式 - 旷野足迹 - 博客园 对于读取Twitter数据最终会得到一个超级复杂的json文件, ...

  8. 【转】Python 列表生成式

    原文:https://blog.csdn.net/heartyhu/article/details/50988007 1. 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, ...

  9. python 列表生成式、lower()和upper()的使用

    参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196389 ...

随机推荐

  1. java中的while循环和do while循环

    那么在讲解循环之前呢我们先来了解一下什么是循环   生活中的例子 车子的轮胎他就是一直在循环 马拉松跑到也是在循环 因为运动员不停的一圈一圈在跑这也是一个循环 那么我们为什么要学习循环呢? 下面看一个 ...

  2. oracle 10g 搭建备库以及一次DG GAP的处理情况

    1.主庫全庫備份rman target/rman> backup database format '/backup/fullbak/fullbak_%U';2.用scp傳到備庫,最好是rman目 ...

  3. windows服务搭建与删除简单介绍

    安装windows服务: 1 VS的开发命令使用管理员权限打开, 2 installutl.exe /servicename="服务名称"  "服务地址" 卸载 ...

  4. Linux监控系统相关资源和运行状态命令整理

    #前言:Linux系统自带了些实时查看监控系统运行状态的相关命令,接下来我们就来了解一下. #首先我们先来了解一下什么是进程 #进程:是Linux用来表示正在运行的程序的一种抽象概念,Linux系统上 ...

  5. jQuery实现颜色打字机

    效果:每个字逐个显示出来,并且每个字都有随机颜色 $(function(){ var str="早起的鸟儿有虫吃,早起的虫儿被鸟吃!由此天赋+勤奋=成功;先天不足+同等勤奋=还是失败!天赋的 ...

  6. JAVA反射概念及使用详解(超详细)

    JAVA反射概念及使用详解 一.什么是反射? 反射:框架设计的灵魂 框架:半成品软件.可以在框架的基础上进行软件开发,简化编码 反射:将类的各个组成部分封装为其他对象,这就是反射机制 ​ 好处: ​ ...

  7. 关于编码和解码问题——encode、decode

            一.背景和问题 近期在做一个关于声卡录音的项目,开发环境是win10 64位家庭中文版,pycharm2019.1,python3.6(Anaconda3),python模块pyaud ...

  8. SpringMVC框架——转发与重定向

    网上摘取一段大神总结的转发与重定向的区别,如下: 转发(服务端行为) 形式:request.getRequestDispatcher().forward(request,response) 转发在服务 ...

  9. JavaScript 模式》读书笔记(4)— 函数2

    这篇,我们仍旧继续学习函数. 二.回调模式 函数都是对象,这表示它们可以作为参数传递给其它函数. function writeCode(callback) { // 执行一些事务... callbac ...

  10. SVN分支合并指南

    SVN分支合并主干具体操作步骤 1. 在装有svn插件的myeclipse中,在主干上选择需要合并的文件或文件夹, 右击--> team -->合并(merge) 2.选择合并类型--合并 ...