zoukankan      html  css  js  c++  java
  • 列表推导式,字典推导式和三元表达式

    列表推导式介绍

    列表推导式是Python中快速创建列表的一种方式。

    之前我们要创建(Python3中)一个元素是0~9的列表,我们可能会像下面这么写:

    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    这么写没毛病,但是如果要稍微复杂一点的需求可能就有点棘手了,比如:

    把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]中的每个元素都加100,生成一个新列表,这要怎么写呢?

    >>> list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> list2 = []
    >>> for i in list1:
    ...     list2.append(i+100)
    ... 
    >>> list2
    [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

    列表推导式练习

    只有输出表达式和输入序列的基本列表推导式

    >>> list1 = [1, 2, 3]
    >>> [x*10 for x in list1]  # 把list1中的每个元素乘以10
    [10, 20, 30]
    

    ### 带有条件判断的列表推导式

    >>> list1 = [1, 2, 3]
    >>> [x*10 for x in list1 if x%2!=0]  # 把list1中的每个不能被2整除的元素乘以10
    [10, 30]
    

    多个输入序列的列表推导式

    >>> list1 = ["A", "B", "C"]
    >>> list2 = ["X", "Y", "Z"]
    >>> [x+y for x in list1 for y in list2]  # 把list1和list2中的元素进行拼接
    ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
    

    注意:使用列表推导式生成的列表虽然十分方便,但是它生成的列表的所有元素会直接在内存中生成,当你要生成的列表元素个数十分巨大的时候,要注意小心你的内存。

    字典推导式

    字典推导式是python自带的一种快速生成字典或集合的方式,一般与enumerate连用。

    l1 = ['jason','123','read']
    d = {i:j for i,j in enumerate(l1) if j != '123'}
    print(d)
    View Code

    三元表达式

    三元表达式固定表达式
        值1 if 条件 else 值2
            条件成立 值1
            条件不成立 值2
    View Code
    三元表达式的应用场景只推荐只有两种的情况的可能下
    is_free = input('请输入是否免费(y/n)>>>:')
    is_free = '免费' if is_free == 'y' else '收费'
    print(is_free)
    
    
    username = input('username>>>:')
    res = 'NB' if username == 'jason' else '垃圾'
    print(res)
    示例
  • 相关阅读:
    Oracle错误——ORA-12704:字符集不匹配
    nodejs 错误问题解决
    windows 卸载 node.js 怎么卸载搜索
    Git安装配置及基本使用(windows)
    破解photoshop cs6 mac
    将text中的数字转换为字符串
    JavaScript 为什么不推荐使用 eval?
    Permission denied (publickey).
    linux 命令
    恢复 git reset -hard 的误操作
  • 原文地址:https://www.cnblogs.com/cmd61/p/11176546.html
Copyright © 2011-2022 走看看