10_python基础—数据序列(推导式)

简介: 10_python基础—数据序列(推导式)

一、列表推导式


作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。


列表推导式又叫列表生成式。


1.1 快速体验


需求:创建一个0-10的列表。


  • while循环实现
# 1. 准备一个空列表
list1 = []
# 2. 书写循环,依次追加数字到空列表list1中
i = 0
while i < 10:
    list1.append(i)
    i += 1
print(list1)


  • for循环实现


list1 = []
for i in range(10):
    list1.append(i)
print(list1)


  • 列表推导式实现


list1 = [i for i in range(10)]
print(list1)


1.2 带if的列表推导式


需求:创建0-10的偶数列表


  • 方法一:range()步长实现


list1 = [i for i in range(0, 10, 2)]
print(list1)


  • 方法二:if实现


list1 = [i for i in range(10) if i % 2 == 0]
print(list1)


1.3 多个for循环实现列表推导式


需求:创建列表如下:


[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]


# 数据1 : 1 和 2  range(1,3)
# 数据2 :0 1 2  range(3)
list1 = []
for i in range(1, 3):
    for j in range(3):
        # 列表里面追加元组: 循环前准备一个空列表,然后这里追加元组数据到列表
        list1.append((i, j))
print(list1)


  • 代码如下:


list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)


二、字典推导式


思考:如果有如下两个列表:


list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']


如何快速合并为一个字典?


答:字典推导式


字典推导式作用:快速合并列表为字典或提取字典中目标数据。


2.1 快速体验


  1. 创建一个字典:字典key是1-5数字,value是这个数字的2次方。


dict1 = {i: i**2 for i in range(1, 5)}
print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16}


  1. 将两个列表合并为一个字典
list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
# {'name': 'Tom', 'age': 20, 'gender': 'man'}
print(dict1)
# 1. 如果两个列表数据个数相同,len统计任何一个列表的长度都可以
# 2. 如果两个列表数据个数不同,len统计数据多的列表数据个数会报错;len统计数据少的列表数据个数不会报错
  1. 提取字典中目标数据
counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求:提取上述电脑数量大于等于200的字典数据
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1)  # {'MBP': 268, 'DELL': 201}


三、集合推导式


需求:创建一个集合,数据为下方列表的2次方。


list1 = [1, 1, 2]


代码如下:


list1 = [1, 1, 2]
set1 = {i ** 2 for i in list1}
print(set1)  # {1, 4}


注意:集合有数据去重功能。


四、总结


  • 推导式的作用:简化代码
  • 推导式写法
# 列表推导式
[xx for xx in range()]
# 字典推导式
{xx1: xx2 for ... in ...}
# 集合推导式
{xx for xx in ...}


目录
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
105 10
|
10天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
2月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
64 3
|
2月前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
2月前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
2月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
38 1
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
93 0