iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python列表推导式 经典代码
  • 801
分享到

python列表推导式 经典代码

2024-04-02 19:04:59 801人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一.什么是推导式二.条件推导式1.语法2.实战练习三.列表推导式1.语法2.实战练习3.效率对比四.重点总结在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把

学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高。

一.什么是推导式

推导式是从一个或者多个迭代器快速简洁地创建数据类型的一种方法,它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率。能熟练使用推导式也可以间接说明你已经超越了Python初学者的水平。

二.条件推导式

1.语法


'''
value1:如果条件表达式condition成立,返回value1 ; 如果条件表达式不成立,返回value2 ;
condition:条件表达式
Value2:如果条件表达式condition成立,返回value1 ; 如果条件表达式不成立,返回value2 ;
 
'''
 
value1 if condition else Value2

2.实战练习

假如有这样一个需要:判断一个数字是奇数还是偶数?


# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): https://www.codersrc.com
@WeChat Official Account(微信公众号):猿说python
@GitHub:www.github.com
 
@File:python_list.py
@Time:2019/9/30 20:45
 
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
 
 
# 新手代码
x = 10
if x%2 == 0:
 print("新手说:x是偶数")
else:
 print("新手说:x是奇数")
 
# 老司机
x = 15
print("老司机说:x是偶数") if x%2 == 0 else print("老司机说:x是奇数")


输出结果:

新手说:x是偶数
老司机说:x是奇数

观察上面代码可以看出来,选手一(新手)一共占用了5行代码,而选手二(老司机)完成同样一个功能仅仅只需要两行,这就是性价比,往往这就是职场上鉴别工作能力/升职加薪的细节。

三.列表推导式

列表推导式是条件推导式和循环一起配合使用,并返回一个列表,并且整个表达式需要在[]内,因为返回值也是列表。

1.语法


'''

语法一:
    exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则不返回
    x:for循环中变量
    data:一个序列(比如:列表/元组/字符串等)
    condition:条件表达式
'''
 
[exp1 for x in data if condition]
 
'''

语法二:
    exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2
    condition:条件表达式
    exp2:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2
    x:for循环中变量
    data:个序列(比如:列表/元组/字符串等)
 
'''
 
[exp1 if condition else exp2 for x in data]

2.实战练习

需求一:获取0~20的所有偶数并且乘以10,并返回所有计算之后的结果。示例代码如下:(使用列表推导式语法一实现)


'''
1.因为是获取0~20,包括20,所以使用range(0,21)
2.x*10 等价 语法一中的exp1
3.x%2 == 0 等价 语法一中的条件表达式condition
4.range(0,21) 等价 语法一中的data(序列)
'''
 
list1 = [x*10 for x in range(0,21) if x%2 == 0] 
print(list1)
print(type(list1))

输出结果:

[0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
<class 'list'>

需求二:将0~20的偶数乘以10,奇数乘以100,并返回所有计算之后的结果。示例代码如下:(使用列表推导式语法二实现)


'''
1.因为是获取0~20,包括20,所以使用range(0,21)
2.x*10 等价 语法二中的exp1
3.x*100 等价 语法二中的exp2
4.x%2 == 0 等价 语法二中的条件表达式condition
5.range(0,21) 等价 语法一中的data(序列)
'''
 
list2 = [x*10 if x%2 == 0 else x*100 for x in range(0,21) ]
print(list2)
print(type(list2))

输出结果:

[0, 100, 20, 300, 40, 500, 60, 700, 80, 900, 100, 1100, 120, 1300, 140, 1500, 160, 1700, 180, 1900, 200]
<class 'list'>

3.效率对比

可能有童鞋纳闷,我明明for循环就能实现的功能,为毛要用这鸟玩意推导式?

使用列表推导式的效率远远高于for循环,可能执行一句print(“helloworld”)对于cpu而已只需要0.0002秒,你可能感觉不到差距,如果需要输出一亿次helloworld呢?往往细节觉得成败!

假如有一个需求:将0~10000000(一亿)以内的所有整数存到列表中,对比一下列表推导式和for循环耗时情况:


import time # 添加time模块,用于统计代码运行时间
 
#一共添加10000000次数据到列表中
total_num = 10000000
 
#使用列表推导式
start_time = time.time()
list1 = [x for x in range(0,total_num)] # 列表推导式
end_time = time.time()
print("使用列表推导式耗时:{}秒".fORMat(end_time-start_time))
 
#使用普通for循环
start_time = time.time()
list2 = list()
for x in range(0,total_num): # for循环
 list2.append(x)
end_time = time.time()
print("使用普通for循环耗时:{}秒".format(end_time-start_time))

输出结果:

使用列表推导式耗时:0.5455152988433838秒
使用普通for循环耗时:1.2068836688995361秒

输出结果很明显,实现通用的功能,列表推导式的效率整整高出普通for循环一倍。

最后温馨提醒:测试请把循环次数改小一点,毕竟刚开始不小心多加了几圈圈,电脑死机了!

四.重点总结

  • 1.注意在列表推导式书写的时候,所有表达式都必须在[]内部,因为返回值是列表list
  • 2.列表推导式是python开发学习的知识点,多多联系,熟能生巧.

到此这篇关于python列表推导式 经典代码的文章就介绍到这了,更多相关python列表推导式 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python列表推导式 经典代码

本文链接: https://www.lsjlt.com/news/137749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python列表推导式 经典代码
    目录一.什么是推导式二.条件推导式1.语法2.实战练习三.列表推导式1.语法2.实战练习3.效率对比四.重点总结在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把...
    99+
    2024-04-02
  • Python列表推导式,元组推导式,字典推导式,集合推导式
    目录1 介绍2 列表推导式3 元组推导式4 字典推导式5 集合推导式1 介绍 推导式(解析器):是Python独有的一种特性。使用推导式可以快速生成列表、元组、字典以及集合类型的数据...
    99+
    2024-04-02
  • Python列表推导式与字典推导式的实现
    目录列表推导式 for 循环写法 列表推导式写法 列表推导式还支持嵌套 字典推导式 元组推导式与集合推导式 总结 在 Python 中推导式是一种非常 Pythonic 的知识,本篇...
    99+
    2024-04-02
  • Python列表推导式和嵌套的列表推导式
    列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。 例如,假设我们想创建一个平方列表,像这样 >>...
    99+
    2023-01-31
    列表 嵌套 Python
  • Python序列的推导式实现代码
    推导式comprehensions(又称解析式),是Python的一种独有特性。 推导式是可以从一个数据序列构建另一个新的数据序列(的一种结构体)。 Python中共有三种推导,在P...
    99+
    2024-04-02
  • Python列表推导式详解
    目录Python列表推导式一、range()函数二、列表推导式三、代码可读性四、字典推导式五、集合推导式Python列表推导式 列表推导式是Python构建列表(list)的一种快捷...
    99+
    2023-05-15
    Python列表推导式 列表推导式 Python推导式
  • Python 中的列表推导式
    Python 中的列表推导式 简单用法添加多个条件多个列表使用替换 Reduce 和 Lambda嵌套列表推导式 列表推导式是一种 Python 构造,可减少生成新列表或过滤现有列表所需的...
    99+
    2023-10-25
    python
  • Python列表推导式详情
    目录1、列表生成式1.1 案例2、集合生成式3、字典生成式1、列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list...
    99+
    2024-04-02
  • python怎么用列表推导式
    小编给大家分享一下python怎么用列表推导式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!列表(list)推导式关于 Python 编程,我最喜欢的事情之一是它...
    99+
    2023-06-27
  • Python列表推导式怎么应用
    Python列表推导式列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表.一、range()函数python的range()函数可用来创建一个整数列表,一般用在 for 循环中.range()语法...
    99+
    2023-05-20
    Python
  • python中列表推导式怎么用
    这篇文章主要为大家展示了“python中列表推导式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中列表推导式怎么用”这篇文章吧。列表推导式在各...
    99+
    2024-04-02
  • Python的列表推导式是什么
    这篇“Python的列表推导式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的列表推导式是什么”文章吧。语...
    99+
    2023-06-29
  • python基础操作列表推导式
    目录python基础——列表推导式一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤python基础——列表推导式 一、实验...
    99+
    2023-05-17
    python列表 python列表推导式
  • python如何实现列表推导表达式
    这篇文章主要为大家展示了“python如何实现列表推导表达式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现列表推导表达式”这篇文章吧。列表推导表达式列表推导表达式是创建列表的...
    99+
    2023-06-27
  • 如何使用Python列表推导表达式
    小编给大家分享一下如何使用Python列表推导表达式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用Python列表推导表达式列表推导表达式是从另一个列表创建列表的一种非常紧凑的方法。 看下面的代码。 第一个是使用简单的...
    99+
    2023-06-27
  • Python 知识点: 列表推导式(list comprehension)
    Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”。名字听上去很难理解,但是看它的语法就很清晰了。...
    99+
    2023-06-02
  • python列表推导式中使用if-els
       今天在处理自动化邮件数据时碰到数据行中包含字符串后,从hive中拿到的整数型数据自动转化成了浮点数,严重影响美观性。因此想到了用列表推导式来做转化,将其中的数字型数据全部转化为整型,而字符型数据保留原样。列表推导式总共有两种形式:①[...
    99+
    2023-01-31
    列表 python els
  • Python的列表推导式你了解吗
    目录语法实例总结语法 1.普通 [expression for target in iterable] 2.带条件 [expression for target in iterab...
    99+
    2024-04-02
  • python技巧 列表推导
    val = [expression for value in collection if condition]等价于val = []for value in collection:    if condition:        val.a...
    99+
    2023-01-30
    技巧 列表 python
  • Python中的列表推导式怎么用
    小编给大家分享一下Python中的列表推导式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作