当前位置:首页 > 科技  > 软件

掌握Python核心利器:列表推导、字典推导与集合推导全面解析

来源: 责编: 时间:2024-06-21 17:19:18 271观看
导读在Python编程的世界里,推导式(Comprehensions)以其简洁、高效的特性,成为编写优雅代码的不二法门。列表推导(List Comprehensions)、字典推导(Dictionary Comprehensions)和集合推导(Set Comprehensions)不仅能够显著提升代码的

在Python编程的世界里,推导式(Comprehensions)以其简洁、高效的特性,成为编写优雅代码的不二法门。列表推导(List Comprehensions)、字典推导(Dictionary Comprehensions)和集合推导(Set Comprehensions)不仅能够显著提升代码的可读性,还能在处理数据时大大增强性能。本篇推文将深入探讨这三大推导式的精髓,通过丰富示例,让你在实战中领略它们的魅力。3kC28资讯网——每日最新资讯28at.com

3kC28资讯网——每日最新资讯28at.com

3kC28资讯网——每日最新资讯28at.com

列表推导:简洁构建列表的魔法

列表推导式是Python中构造列表最直观且高效的方式。它允许你在一行代码中完成循环、条件判断以及新元素的生成。3kC28资讯网——每日最新资讯28at.com

基础示例:平方数生成3kC28资讯网——每日最新资讯28at.com

squares = [x**2 for x in range(1, 6)]print(squares)  # 输出:[1, 4, 9, 16, 25]

条件过滤:筛选偶数3kC28资讯网——每日最新资讯28at.com

even_numbers = [x for x in range(10) if x % 2 == 0]print(even_numbers)  # 输出:[0, 2, 4, 6, 8]

嵌套循环:矩阵转置3kC28资讯网——每日最新资讯28at.com

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))]print(transposed)  # 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

字典推导:构建映射的艺术

字典推导允许你快速创建字典,其中每个键值对都是根据表达式计算得出的。3kC28资讯网——每日最新资讯28at.com

基础示例:字母计数3kC28资讯网——每日最新资讯28at.com

word = "comprehension"char_count = {char: word.count(char) for char in set(word)}print(char_count)  # 输出:{'c': 1, 'o': 2, 'm': 1, 'p': 1, 'r': 2, 'e': 2, 'h': 1, 'n': 1, 's': 1, 'i': 1, 't': 1}

条件过滤:年龄分类3kC28资讯网——每日最新资讯28at.com

people = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]age_groups = {person["name"]: "adult" if person["age"] >= 18 else "minor" for person in people}print(age_groups)  # 输出:{'Alice': 'adult', 'Bob': 'adult', 'Charlie': 'adult'}

集合推导:去重与集合运算

集合推导提供了创建集合的便捷方式,尤其擅长于去重和执行集合间的操作。3kC28资讯网——每日最新资讯28at.com

去重并平方3kC28资讯网——每日最新资讯28at.com

numbers = [1, 2, 2, 3, 4, 4, 5]unique_squares = {x**2 for x in numbers}print(unique_squares)  # 输出:{1, 4, 9, 16, 25}

交集与平方3kC28资讯网——每日最新资讯28at.com

set1 = {1, 2, 3, 4}set2 = {3, 4, 5, 6}common_squares = {x**2 for x in set1 & set2}print(common_squares)  # 输出:{9, 16}

高级技巧:嵌套与链式推导

推导式可以相互嵌套,甚至与条件表达式相结合,实现复杂的逻辑。3kC28资讯网——每日最新资讯28at.com

嵌套列表推导:矩阵乘法3kC28资讯网——每日最新资讯28at.com

matrix_a = [[1, 2], [3, 4]]matrix_b = [[5, 6], [7, 8]]result = [[sum(a*b for a, b in zip(row_a, col_b)) for col_b in zip(*matrix_b)] for row_a in matrix_a]print(result)  # 输出:[[19, 22], [43, 50]]

链式推导:复杂转换

data = [("apple", 2), ("banana", 4), ("cherry", 1)]fruits_sorted_by_count = sorted(    (fruit for fruit, count in data),    key=lambda pair: pair[1],    reverse=True)print(fruits_sorted_by_count)  # 输出:['banana', 'apple', 'cherry']

结语

列表推导、字典推导与集合推导是Python语言中不可或缺的精华部分,它们以简洁而强大的表达形式,极大提升了编码效率和代码的可读性。通过上述示例,希望能帮助你深入理解这三大推导式的应用,让它们成为你编程旅途中的得力助手。在日常编程实践中不断探索,你会发现更多巧妙的使用场景,进一步提升代码的性能与美感。3kC28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-95541-0.html掌握Python核心利器:列表推导、字典推导与集合推导全面解析

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 30.1%,隆基绿能创商业化尺寸叠层电池效率世界纪录

下一篇: Python 中的十个不可不知的隐藏系统调用功能

标签:
  • 热门焦点
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 3699元!iQOO Neo8 Pro顶配版今日首销:1TB UFS 4.0同价位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更是首发搭载了联发科天玑9200+旗舰
  • AI艺术欣赏体验会在上海梅赛德斯奔驰中心音乐俱乐部上演

    光影交错的镜像世界,虚实幻化的视觉奇观,虚拟偶像与真人共同主持,这些场景都出现在2019世界人工智能大会的舞台上。8月29日至31日,“AI艺术欣赏体验会”在上海
Top