zoukankan      html  css  js  c++  java
  • python 列表推导式

    现在我们有一个装有名字的列表["tom", "jack", "bob", "nash"]
    我们想要将列表中的名字首字母都大写。按照之前学的知识,我们会用遍历列表的方式
    对列表中的每个名字进行首字母大写的更改:

    运行结果如下:

    我们可以看到,我们获得了一个新的列表,列表中的每个名字首字母都大写。

    那么,我们有没有更为简洁的方式实现这个功能呢?当然有,那就是列表推导式:
    格式:

    [表达式 for 变量  in 旧列表] or [表达式 for 变量  in  旧列表 if 条件 ]

    我们用列表推导式来实现上面的功能:

    运行结果如下:

    我们可以看到,这样的方式也获得了一个新的列表,列表中的每个名字首字母大写
    了。

    扩展1:列表推导式还可以加上条件判断语句if
    还是上面那个列表,我们获得列表中名字大于等于4个字母的名字

    我们在列表推导式的最后加上了一个判断语句 if len(name) > =4 ,即遍历出的名字大于或等于4个字母的,
    放到name变量中组成一个新的列表。
    运行结果如下:

    我们可以看到,新列表中名字长度大于等于4个

    扩展2:列表推导式还可以加上条件判断语句if...else...

    如上图,salarys列表中有3个字典,每个字典包含了一个人的名字和薪水
    通过判断薪水是否大于10000,若大于则增加2%的薪水,若小于等于则增加5%的薪水
    那么通过列表推导式,遍历每个一个人(emploee),然后判断emploee["salary"]是否大于10000,
    条件为真则*(1+0.02),若为假则*(1+0.05)
    运行结果如下图:

    我们获得了一个新的列表,算出了每个人调整工资后的工资数
    带else的列表推导式格式:
    [ 表达式a   if 条件判断 f else 表达式 b  for 变量 in 列表]
    若条件表达式if为真,则执行表达式a, 反之则执行条件表达式b

    注意:列表推导式会得到一个新的列表,不会改变原来的列表

  • 相关阅读:
    vs2010使用刚刚配置好的STLport提示检测到"_MSC_VER”的不
    UltraISO制作Linux启动盘
    RedHat 简易配置 VNC Server 与VNC View详细说明!
    数据库中树状关系(各种树状分类)的查找
    java–jsp & javabean
    linux 下android的一键root
    MySQL简明教程及表设计原则
    Activity 生存周期
    java web EL表达式
    ubuntu下调试android手机,并进入手机shell终端
  • 原文地址:https://www.cnblogs.com/leolsl/p/13062596.html
Copyright © 2011-2022 走看看