Python中的列表推导式怎么用
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下Python中的列表推导式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、列表生成式列表生成式即List Comprehensions,是Python内置的
千家信息网最后更新 2025年01月19日Python中的列表推导式怎么用
小编给大家分享一下Python中的列表推导式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
1、列表生成式
列表生成式即List Comprehensions
,是Python
内置的非常简单却强大的可以用来创建list
的生成式。
语法结构如下:
# 普通的生成式[表达式 for 变量 in 旧列表]# 加条件的生成式[表达式 for 变量 in 旧列表 if 条件]# if...else条件的生成式[表达式 if 条件1 else 条件2for 变量 in 旧列表]
1.1 案例
过滤掉名词字母不足4的名字,示例代码如下:
names = ["Tom", "Lily", "Jack", "Steven", "Bod"]# 在不是用列表生成式的过程news_names = []for name in names: if len(name) > 3: news_names.append(name)print(news_names) # ['Lily', 'Jack', 'Steven']# 使用列表生成式new_names = [name for name in names if len(name) > 3]print(new_names) # ['Lily', 'Jack', 'Steven']
显而易见,使用列表生成式可以节省很多行代码
将1-100的整数可以被3和5整除的数字,组成一个新的列表.示例代码,示例代码如下所示:
# 将1-100的整数可以被3和5整除的数字,组成一个新的列表# 旧方法number_list = []for i in range(101): if i % 3 == 0 and i % 5 == 0: number_list.append(i)print(number_list) # [0, 15, 30, 45, 60, 75, 90]# 列表生成式new_num_list = [i for i in range(101) if i % 3 == 0 and i % 5 == 0]print(new_num_list) # [0, 15, 30, 45, 60, 75, 90]
将0到10的奇数和0到5的偶数组成一个不重复的列表,示例代码如下所示:
# 将0到10的奇数和0到5的偶数组成一个不重复的列表# 旧方法news_number_list = []for x in range(10): if x % 2 != 0: for y in range(5): if y % 2 == 0: news_number_list.append([x, y])print(news_number_list)# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]# 新方法news_num_list = [[x, y] for x in range(10) if x % 2 != 0 for y in range(6) if y % 2 == 0]print(news_num_list)# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]
同样支持多个for
语句,如果使用原来的那种方法的话层级结构太深了,使用生成式一行解决
将列表中的数字大于8000的加200 小于等于8000的加500,示例代码如下:
# 将列表中的数字大于8000的加200 小于等于8000的加500number = [5000, 10000, 4500, 80000, 12000]# 旧方法for i in number: if i > 8000: i += 200 else: i += 500print(number) # [5000, 10000, 4500, 80000, 12000]# 新方法new_number = [i + 200 if i > 8000 else i + 500 for i in number]print(new_number) # [5000, 10000, 4500, 80000, 12000]
2、集合生成式
语法结构如下所示:
# 普通的生成式{表达式 for 变量 in 旧列表}# 加条件的生成式{表达式 for 变量 in 旧列表 if 条件}# if...else条件的生成式{表达式 if 条件1 else 条件2for 变量 in 旧列表}
语法结构与列表生成式基本相同,但是因为集合不允许有重复,所有得出的结果自动去重
3、字典生成式
字典生成式与集合生成式和列表生成式的语法结构一致,唯一不同的是字典是以键值对的形式存放信息的,如下例子中我们将dict中的键值互换,
示例代码如下:
# 将字典的键值对互换dict1 = {"a": "A", "b": "B", "c": "C"}# 就方法new_dict1 = {}for key, value in dict1.items(): # 返回一个存放键值对的元组 new_dict1[value] = keyprint(new_dict1) # {'A': 'a', 'B': 'b', 'C': 'c'}# 新方法news_dict1 = {value: key for key, value in dict1.items()}print(news_dict1) # {'A': 'a', 'B': 'b', 'C': 'c'}
item
方法:返回可遍历的(键, 值) 元组数组。
看完了这篇文章,相信你对"Python中的列表推导式怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
生成
条件
方法
代码
变量
示例
表达式
结构
字典
数字
语法
普通
偶数
奇数
整数
篇文章
不同
强大
相同
一致
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
chip数据库包括什么
读取照片上的内容存在数据库中
湖南联通dns服务器
软件开发有关的职位
软件开发学什么容易找工作
无纸传真服务器显示不完整
b5纸画网络安全手抄报
网络技术类图书
高校学生网络安全工作
上海车团网络技术
购买网络技术服务行业标准
做工超好的服务器电源
存配置文件和存数据库
网络安全宣传周先进事迹材料
数据采集器软件开发
互联网网络技术咨询软件
两个服务器同步备份
核心交换机上的服务器上不了网
软件开发招聘信息最新
网络安全人人有责心得
网络安全畅想
纳秒级实时数据库
安全咨询软件开发
前端软件开发好学吗
一般大学校园网络安全知识培训
浙江省各个县气象数据库
局域网如何制作服务器
核心交换机上的服务器上不了网
厦门社保软件开发
网络安全法 民法