看个例子:

# 定义一个列表
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. 05 mapreduce快速入门

    统计HDFS的/wordcount/input/a.txt文件中的每个单词出现的次数——wordcount package cn.oracle.core; import java.io.IOExcep ...

  2. ASP.NET Core身份认证服务框架IdentityServer4 介绍

    IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架.它可以在您的应用程序中提供以下功能: 它使你的应用程序具有如下特点: 认证即服务 适 ...

  3. swoole 异步非堵塞 server/端 client/端 代码,已经测试完毕。贴代码

    服务器环境  centos7.0  swoole4.3 php7.2 pcre4.8  nginx1.8   php-fpm server.php <?php class Server { pr ...

  4. 登录页面判断session退出登录清空session

    1 2 3 4 5 6 if(empty($_POST)){      $_SESSION = array();     if(isset($_COOKIE[session_name()])){    ...

  5. TARS基金会:构建微服务开源生态

    导语 在20世纪60至70年代,软件开发人员通常在大型机和小型机上使用单体架构进行软件开发,没有一个应用程序能够满足大多数最终用户的需求.垂直行业使用的软件代码量更小,与其他应用程序的接口更简单,而可 ...

  6. 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一). 前面搭建好了自己本地的S ...

  7. app之---豆果美食

    1.抓包 2.代码 抓取: #!/usr/bin/env python # -*- coding: utf-8 -*- #author tom import requests from multipr ...

  8. ipadmini iOS8.4.1系统精简

    主要是删除一些系统自带的应用.语言,以及关闭不需要的进程. 精简之后运行流畅性还是能看得出有所提升的.(流畅的玩点游戏还是可行的) 文件的操作可以用Filza.iFile,也可以用爱思助手,但是爱思助 ...

  9. POI小demo

    使用poi需要先下载相关jar包(http://download.csdn.net/detail/wangkunisok/9454545) poi-3.14-20160307.jar poi-ooxm ...

  10. 前端视频直播技术总结及video.js在h5页面中的应用

    全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/12557070.html,多谢,=.=~ (如果对你有帮助的话请帮我点个赞啦) 目前有一个需求是在 ...