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


    文章目录

    • 列表推导式
    • 字典推导式
    • 集合推导式
    • 元组推导式


    列表推导式

    基本格式:
    [表达式 for 变量 in 列表]
    [表达式 for 变量 in 列表 if 条件]

    实例1:过滤长度小于等于5的字符串列表,并将剩下的转换成大写字母

    names = ['zhangsan','lisi','wangmazi','wangzu','zhaoliu']
    new_names = [name.upper()for name in names if len(name)>5]
    print(new_names)
    
    >>>输出结果为:['ZHANGSAN', 'WANGMAZI', 'WANGZU', 'ZHAOLIU']
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实例2:计算10以内可以被3整除的整数:

    multiples = [i for i in range(10) if i % 3 ==0]
    print(multiples)
    
    >>>输出结果为:[0, 3, 6, 9]
    
    • 1
    • 2
    • 3
    • 4

    实例3:如果首字母是 p 则首字母大写,否则全部大写

    list1 = ['python','java','c++']
    list2 = [world.title() if world.startswith("p") else world.upper() for world in list1]
    print(list2)
    
    >>>输出结果为:['Python', 'JAVA', 'C++']
    
    • 1
    • 2
    • 3
    • 4
    • 5

    字典推导式

    基本格式:
    { key_expr: value_expr for value in collection }
    { key_expr: value_expr for value in collection if condition }

    实例1:使用字符串长度为值,组成键值对

    shop = ['taobao','jingdong','pinduoduo']
    newshop = {key:len(key) for key in shop}
    print(newshop)
    
    >>>输出结果为:{'taobao': 6, 'jingdong': 8, 'pinduoduo': 9}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实例2:使用字符串的长度为键,组成键值对

    shop = ['taobao','jingdong','pinduoduo']
    newshop1 = {len(value):value for value in shop}
    print(newshop1)
    
    >>>输出结果为:{6: 'taobao', 8: 'jingdong', 9: 'pinduoduo'}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    集合推导式

    基本格式:
    { expression for item in Sequence }
    { expression for item in Sequence if conditional }

    实例1:输出列表的平方数

    arr = [1,2,3]
    new_arr = {num**2 for num in arr}
    print(new_arr)
    
    >>>输出结果为:{1, 4, 9}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实例2:判断不是abc的字母并输出

    str = "fancy"
    new_str = {x for x in str if x not in 'abc'}
    print(new_str)
    
    >>>输出结果为:{'y', 'n', 'f'}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里集合是无序的,所以输出的结果也是乱序的


    元组推导式

    写到这基本的格式是一样的,只是 元组用的是 () ,列表用的是 []
    实例1:生成一个包含0~9的元组:

    arr = (x for x in range(10))
    print(tuple(arr))
    
    >>>输出结果为:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    【飞控开发高级教程1】疯壳·开源编队无人机-飞控整机代码走读、编译与烧写
    TypeScript_基本类型
    前端进击笔记第四节 如何设计一个前端项目
    五一劳动节活动策划案怎么写?
    SQL注入
    Mybatis:Mybatis获取参数值的两种方式(4)
    含论文基于JSP的零食销售商城【数据库设计、源码、开题报告】
    MacBook快捷键使用
    【OpenCV】 拟合直线 与 霍夫直线 对比 , fitLine()与 HoughLinesP()对比
    在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境
  • 原文地址:https://blog.csdn.net/fancynthia/article/details/126365676
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号