python之列表推导式

Bill78 等级 748 0 0
标签: pythonPython

1. 定义

用一行构建代码

例题
# 构建一个1-100的列表
l1 = [i for i in range(1,101)]
print(l1)

# 输出结果
[1,2,3,4,5,6,...100] 

2. 两种构建方式

2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]

例题
1. 将10以内所有整数写入列表
print([i for i in range(1,11)])
# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2. 将10以内所有整数的平方写入列表。
print([i**2 for i in range(1, 11)])

3. 100以内所有的偶数写入列表.
print([i for i in range(2, 101, 2)])

4. 从python1期到python100期写入列表list
print([f'python{i}期' for i in range(1, 101)]) 
练习题
l1 = [i*i for i in range(1,11)]
print(l1)

l2 = [i for i in range(1,101) if i % 2 == 0]
print(l2)

l3 = [f'python{i}期' for i in range(1,101)]

print(l3) 

2.2 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件] 增加一个判断

例题
# 构建一个列表,要求元素大于4
print([i for i in range(11) if i > 4])

# 输出结果:
[5, 6, 7, 8, 9, 10] 
练习题
1. 10以内大于4的数

# print([i for i in range(11) if i > 4])
print([i for i in range(1,31) if i % 3 == 0])


2. 30以内可以被三整除的数。
# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']

l2 = [i.upper() for i in l1 if len(i) > 3]
print(l2)


3. 找到嵌套列表中名字含有两个‘e’的所有名字(有难度)
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
# 方法一: 普通方法
l4 = []
for i in names:
    for j in i:
        if j.count('e') >= 2:
            l4.append(j)
print(l4)

# 方法二: 列表推导式方法
print([j for i in names for j in i if j.count('e') >= 2 ]) 

3. 列表推导式的优缺点

优点:

​ 简单,快捷,装b

缺点:

​ 可读性不高,不好排错

本文转自 https://www.cnblogs.com/zanao/p/11061738.html,如有侵权,请联系删除。

收藏
评论区

相关推荐

15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工
本篇文章将给大家介绍 Python 多线程与多进程相关知识,学习完该知识点之后,你的 Python 程序将进入另一个高峰。 <center<font colorred缓解一下视疲劳</font</center 15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工(https://imghelloworld.oss
为啥要学Python?
为啥要学Python?如果我跟你说你现在用一天拉出来的财务统计表,学了Python之后能用1个小时就搞定,你学不学?如果你花了8个小时扒的竞品投放数据,学了Python之后能用30min搞定,你学不学?你总羡慕你的同事能6点下班,陪女朋友蹦迪夜生活丰富,你却在满脸油头的爆肝加班,学了Python之后,你也能这样,你学不学?如果我跟你说,学会了Python能增
手把手教你使用Flask搭建ES搜索引擎(预备篇)
/1 前言/ Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 那么如何实现 Elasticsearch和 Python 的对接成为我们所关心的问题了 (怎么什么都要和 Python 关联啊)。 /2 Python 交互/ 所以,Python 也就提供了可以对接 Elasti
2019独角兽企业重金招聘Python工程师标准
很多盆友一定有这样的疑问: **Python****是什么?** **学会了Python可以做什么?** **为什么人人都应该懂Python?** ![](https://oscimg.oschina.net/oscnet/f7ddd56eca5709e45b4b95cc1d9c9bc5d20.jpg) 别急,我来科普啦~ Python是一门面向
2019独角兽企业重金招聘Python工程师标准
很多盆友一定有这样的疑问: **Python****是什么?** **学会了Python可以做什么?** **为什么人人都应该懂Python?** ![](https://oscimg.oschina.net/oscnet/f7ddd56eca5709e45b4b95cc1d9c9bc5d20.jpg) 别急,我来科普啦~ Python是一门面向
CentOS升级Python到2.7版本
查看python的版本 python -V Python 2.4.3 1.先安装GCC yum -y install gcc 2.下载Python-2.7.2 wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2 3.解压Python-2.7.2
Centos服务器中多版本Python带来的困惑问题
最近写了几个在crond中使用的python定时执行脚本。其中使用了datetime包中的timedelta的total\_seconds()方法。配置定时执行的方式也很简单,就写成了 \*/5 \* \* \* \* root python abc.py 写好后,发现定时执行的脚本每次执行都会报错,说找不到total\_seconds方法。在脚本中导入
Python List数据的遍历
方式一: <!-- lang: python --> app_list = [1234, 5677, 8899] <!-- lang: python --> for app_id in app_list: <!-- lang: python --> print app_id 输出: 123
Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?
大家好,这是“Python为什么”系列节目的文字稿(**文末有观看地址**)。 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 “end” 之类的语法? Python 的缩进是一个老生常谈的话题,经常有人会提及它,比如 Python 之父在上个月就恰好转发过一篇文章: ![](http://ww1.sinaim
Python 之父退位后,会有新任终身仁慈独裁者吗?怎么产生?
随着 Python 之父 Guido van Rossum 逐步卸任 BDFL,Python(CPython)的未来之路牵动了万千开发者的心。没了首领,Python 今后的发展会怎么样?社区将如何运作?谁来领导 Python 这门语言和社区呢?这些问题不得不解决,而用什么样的方式解决,这就需要先由社区讨论并最终决定。目前,Python 社区共提出了 7 种治
Python 函数为什么会默认返回 None?
点击蓝色“Python空间”关注我丫 加个“星标”,每天一起快乐的学习 ![](https://oscimg.oschina.net/oscnet/2eb7387a-d87b-4685-a8b2-a60f61773c78.jpg) Python 有一项默认的做法,很多编程语言都没有——**它的所有函数都会有一个返回值,不管你有没有写 retur
Python 学习之路(四)
Python 学习之路(四) ============== > 以下所用的是Python 3.6 一、时间模块(time 模块) --------------- > 实例环境为Ubuntu 14.04 python 3.6 导入time模块。注:可以在命令行输入: help(time.方法名字)查看帮助文档,例:help(time.localtime)
Python中Requests库的高级用法
前面讲了Python的urllib库的使用和方法,Python网络数据采集Urllib库的基本使用 ,Python的urllib高级用法 。 今天我们来学习下Python中Requests库的用法。([官方手册](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fdocs.python-req
Python中的函数式编程教程,学会用一行代码搞定
0 1 前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程。在Python中,函数式编程中的map和filter可以做与列表相同的事情。这打破了Python的禅宗规则之一,因此函数式编程的这些部分不被认为是“Python式的”。但是由于函数式编程高阶编程的必经之路,所以我们需要了解甚至熟练掌握。 0 2
Python进阶丨如何创建你的第一个Python元类?
> **摘要:**通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念: * * 什么是Python元类?