码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python语法糖-推导式


    列表推导式

    概述:

    列表推导式可以利用列表、元组、集合等数据容器,快速生成一个列表

    [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]]
    1、表达式为迭代变量在for循环中的迭代的值(或条件表达式后)

    2、if条件表达式如果不需要可以省略

     普通循环和列表推导式的写法对比:

    1. #列表推导式
    2. lista = [i*2 for i in range(6)]
    3. #普通循环写法
    4. lista = []
    5. for i in range(6):
    6. lista.append(i*2)

       加入条件语句后的列表推导式:

    1. #推导式
    2. listb = [i*2 for i in range(6) if i > 2]
    3. #普通写法
    4. listb = []
    5. for i in range(6):
    6. if i > 2:
    7. listb.append(i*2)

    表达式也可以不获取迭代变量的值,例如推导式中表达式为函数调用时:!!!

    1. test_num = 0
    2. def getNextNum():
    3. global test_num
    4. test_num += 1
    5. return test_num
    6. if __name__ == '__main__':
    7. list_a = [getNextNum() for i in range(6)]
    8. print(list_a)

      多层循环的推导式:

    1. #多层循环推导式
    2. nn_list = [(x,y) for x in range(3) for y in range(3)]
    3. print(nn_list)
    4. #普通写法
    5. nn_list = []
    6. for i in range(3):
    7. for j in range(3):
    8. nn_list.append((i,j))
    9. print(nn_list)

      列表推导式的嵌套

    1. #列表推导式的嵌套
    2. list_aa = [m for m in [n*2 for n in range(5)]]
    3. print(list_aa)

    字典推导式

    概述

    {键:值 for 迭代变量 in 可迭代对象 [if 条件表达式]}

     普通的字典推导式:

    1. dict_de = {key:value for key in range(3) for value in range(2)}
    2. print(dict_de)

    元组列表转换成字典:

    1. #将元组列表转换成字典
    2. my_tuple_list = [('name', 'ggr'), ('age', 26),('class', 'no'), ('like', 'python')]
    3. my_dict = {key: value for key, value in my_tuple_list}
    4. print(my_dict)

    元组推导式

    元组推导式用法与列表推导式类似

    1. #元组推导式
    2. tuple_de = (x for x in range(10))
    3. print(tuple_de)

      

    注:元组推导式并不会返回一个元组,而是返回一个生成器对象,故元组推导式又称之为生成器推导式

     集合推导式

    集合推导式与列表推导式类似

    1. #集合推导式
    2. set_de = {x for x in 'jishuaishuai'}
    3. print(set_de)

    注:因为集合内元素具有唯一性,所以在推导式返回集合时,会自动去重

     

  • 相关阅读:
    Yakit工具篇:爆破与未授权检测的使用
    超全整理,服务端性能测试-docker部署tomcat/redis(详细步骤)
    MySQL高级12-事务原理
    C语言K&R圣经笔记 2.1变量名 2.2 数据类型和大小
    如何在Windows7 上查看.NET Framework版本
    尚硅谷Vue视频学习打卡-Vue组件化编程以及Vue脚手架的安装-简要介绍
    CDH6.3.2详细安装教程
    GLTF编辑器教你区分自发光贴图和光照贴图
    Flutter 文件上传 (基于 http.dart)
    有免代码开发平台,还需要学习软件工程吗?
  • 原文地址:https://blog.csdn.net/qq_38642731/article/details/126728916
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号