美文网首页Python
Python 推导式

Python 推导式

作者: Rethink | 来源:发表于2019-05-02 15:32 被阅读0次

    Python v3.7.0

    推导式(comprehensions),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。

    列表推导式

    格式:

    [expression for item in iterable if condition]
        expression :列表生成的值,也可以是表达式
        for item in itreable:将item传入并迭代iterable
        if condition:条件表达式
    

    例子:

    from functools import reduce
    
    var = [i for i in range(10) if i % 2 == 0]
    sum = reduce(lambda x, y: x + y, [i for i in range(10) if i % 2 == 0])
    
    
    print(var, sum, sep='\n')
    
    >>>
    [0, 2, 4, 6, 8]
    20
    

    字典推导式

    字典推导式的使用方法和列表推导式是类似的,只需要把[] 替换成{} .

    case = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    case_revesed = {v: k for k, v in case.items()}
    print(case_revesed)
    
    >>>
    {'Zara': 'Name', 7: 'Age', 'First': 'Class'}
    

    集合推导式

    集合推导式,使用格式和字典推导式完全相同,用来生成集合类型的数据。

    squared = {x ** 2 for x in [1, 1, 2]}
    print(multiples, type(multiples), tuple(multiples), sep='\n')
    >>>
    {1, 4} <class 'set'>
    

    生成器推导式

    生成器推导式和列表推导式差不多,只是由中括号[]变成了括号(),但这并不是元组推导式,元组没有推导式。它返回一个可迭代对象,可以根据需要将他转化为列表或者元组。

    multiples = (i for i in range(30) if i % 3 is 0)
    print(multiples, type(multiples))
    
    >>>
    <generator object <genexpr> at 0x10e784408>
    <class 'generator'>
    (0, 3, 6, 9, 12, 15, 18, 21, 24, 27)
    

    To be continued...

    相关文章

      网友评论

        本文标题:Python 推导式

        本文链接:https://www.haomeiwen.com/subject/zrmnnqtx.html