码农知识堂 - 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)

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

     

  • 相关阅读:
    12月2日第壹简报,星期五,农历十一月初九
    【数组】非递增的最小子序列 计数排序
    【mmCEsim】开源项目预告:毫米波信道估计仿真软件
    vscode ros配置
    【面试题】什么是事务,什么是脏读、不可重复读、幻读,以及MySQL的几种事务隔离级别的应对方法
    有个开发者总结这 15 优雅的 JavaScript 个技巧
    关于串口服务器及转接线的一些基础知识笔记
    Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第6章 Vue.js路由 6.5 嵌套路由 && 6.6 路由布局
    【探索SpringCloud】服务发现-Nacos服务端数据结构和模型
    36、异常(Exception)
  • 原文地址:https://blog.csdn.net/qq_38642731/article/details/126728916
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号