Python中居然还有字典推导式

发表于:2024-4-25 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:python学习与大数据分    来源:python学习与大数据分析

  在Python中,字典推导式(Dictionary Comprehension)是一种简洁而强大的工具,用于从已有的可迭代对象(如列表、元组、集合或另一个字典)中快速创建新的字典。它采用类似于列表推导式的语法,但生成的结果是字典而非列表。字典推导式可以帮助我们编写更加清晰、简洁的代码,特别是在需要对现有数据进行转换或过滤时。
  下面我们通过一些例子来看一下字典推导式的实际使用:
  例1:从列表创建字典
  假设我们有一个包含学生姓名和分数的列表,我们想要将其转换为一个字典,其中姓名是键,分数是值。
  # 原始数据  
  names = ['Alice', 'Bob', 'Charlie']  
  scores = [90, 85, 92]  
    
  # 使用字典推导式创建字典  
  student_scores = {name: score for name, score in zip(names, scores)}  
    
  print(student_scores)  
  # 输出: {'Alice': 90, 'Bob': 85, 'Charlie': 92}
  在这个例子中,zip(names, scores) 将姓名和分数配对,然后字典推导式遍历这些对,并将每对中的第一个元素作为键,第二个元素作为值,构建新的字典。
  例2:过滤字典中的项
  假设我们有一个包含学生姓名和年龄的字典,我们想要创建一个新字典,其中只包含年龄大于20岁的学生。
  # 原始数据  
  students = {  
      'Alice': 22,  
      'Bob': 19,  
      'Charlie': 23,  
      'David': 18  
  }  
    
  # 使用字典推导式过滤项  
  adults = {name: age for name, age in students.items() if age > 20}  
    
  print(adults)  
  # 输出: {'Alice': 22, 'Charlie': 23}
  在这个例子中,.items() 方法用于获取字典的键值对,if age > 20 是一个条件表达式,用于过滤出年龄大于20岁的学生。
  例3:字典值的转换
  如果我们要将上述学生年龄字典中的每个年龄都增加2岁,我们可以这样做:
  # 原始数据  
  students = {  
      'Alice': 22,  
      'Bob': 19,  
      'Charlie': 23,  
      'David': 18  
  }  
    
  # 使用字典推导式转换值  
  students_aged = {name: age + 2 for name, age in students.items()}  
    
  print(students_aged)  
  # 输出: {'Alice': 24, 'Bob': 21, 'Charlie': 25, 'David': 20}
  在这个例子中,字典推导式遍历字典的每一项,并将年龄值加2,然后构建新的字典。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号