zoukankan      html  css  js  c++  java
  • Python三元表达式和列表生成式

    三元表达式

    取代 if …… else……的简单表达方式

    
    
    复制代码
    #  常规写法
    x = 1
    y = 2
    ​
    if x>y:
        print(x)
    else:
        print(y)
    ​
    #三元表达式写法
    res = x if x > y else y
    复制代码

    注意:只能判断最最基础的if else语句,不适用于elif 语句。

    生成式

    1. 列表生成式

      简化新建列表的方法

      复制代码
      # 常规用法
      l = []
      for i in range(10):
          if i > 4:
              l.append(i)
      print(l)  # [5,6,7,8,9]
      ​
      # 生成式写法
      l = [i for i in range(10) if i>4]
      print(l) # [5,6,7,8,9]
      ​
      ​
      ​
      #列表生成式的强大用法(睁大眼睛看着哦)
      msg = ['Jason', 'l_tony', 'l_rose', 'l_allen']  # 提取列表中以'l'开头的元素放入列表,并大写
      res = [i.upper() for i in msg if i.startswith('l')]  # 一行代码解决
      print(res)  # ['L_TONY', 'L_ROSE', 'L_ALLEN']
      ​
      ​
      #语法表达式
      [expression for item1 in iterable1 if condition1
      for item2 in iterable2 if condition2
      ...
      for itemN in iterableN if conditionN
      ]  # [表达式 循环+条件筛选语句]
      复制代码
    2. 字典生成式

      res = {i: i**2 for i in range(10) if i > 3}
      print(res)  # 字典生成式
      ​
      ​
      print({i for i in 'hello'}) # 集合生成式
  • 相关阅读:
    NYOJ题目916胖子小的百宝袋
    NYOJ题目893十字架
    NYOJ题目874签到
    设计模式之Singleton
    Elo rating system 模拟
    JDBC之SqlHelper
    《Thinking in Java》十四章类型信息_习题解
    NYOJ题目842整除的尾数
    NYOJ题目840吃花生
    NYOJ题目839合并
  • 原文地址:https://www.cnblogs.com/MLing/p/12851108.html
Copyright © 2011-2022 走看看