• Python 推导式


    Python 语言有一种独特的语法,它可以用最简单的方式生成一个列表、元组或字典,它们叫推导式。

    常见的推导式:

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

    列表推导式

    列表推导式可以快速生成一个列表,其语法格式为:

    >>> [x * x for x in range(6)]       # 结果:[0, 1, 4, 9, 16, 25]
    
    # 相当于
    l = []
    for x in range(6):
        l.append(x)
    

    要生成的元素 x*x 在前面,后面跟 for 循环。后面也可以再跟 if 判断:

    >>> [x * x for x in range(6) if x % 2 == 0]
    [0, 2, 4]
    
    # 相当于
    l = []
    for x in range(6):
        if x % 2 == 0:
            l.append(x)
    print(l)
    

    两层循环(三层很少),生成全排列:

    >>> [x+y for x in 'abc' for y in '123']
    ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']
    
    # 相当于
    l = []
    for x in 'abc':
        for y in '123':
            l.append(x+y)
    print(l)
    

    循环多个变量:

    >>> d = {'name': 'rose', 'gender': 'female'}
    [k + ':' + v for k, v in d.items()]
    ['name:rose', 'gender:female']
    
    # 相当于
    l = []
    d = {'name': 'rose', 'gender': 'female'}
    for k, v in d.items():
        l.append(k + ':' + v)
    print(l)
    

    字典推导式

    语法格式:

    {key:value for x in (1, 2, 3)}
    
    # 示例一
    >>> d = {k:k.upper() for k in ('rose', 'lila', 'tom')}      # {'rose': 'ROSE', 'lila': 'LILA', 'tom': 'TOM'}
    
    >>> type(d)         # dict
    
    # 示例二
    >>>d = {x: x*2 for x in (1, 2, 3)}      # {1: 2, 2: 4, 3: 6}
    

    字典推导式要生成的元素有两个,分别是 key 和 value,中间以冒号隔开。


    集合推导式

    >>> s = {x for x in '123abc' if x not in '123'}     # {'a', 'b', 'c'}
    

    总结

    • 推导式可以快速生成一个列表、字典或集合等
    • 常见的推导式有列表、字典、集合推导式
    • 推导式前面为要生成的元素,后面接 for 循环,最后还可以跟 if 判断条件
    • 列表([])、集合、字典({})
  • 相关阅读:
    图像处理之霍夫变换(直线检測算法)
    Linux makefile 教程 很具体,且易懂
    POJ 2001 Shortest Prefixes(字典树)
    android performClick使用
    Java工厂模式
    C#异步调用
    答读者问(5):有关数学对程序猿的作用、研发工作岗位要求和实习对找工作的影响等问题
    Android系统源码导入到eclipse
    开源项目与许可证
    Java实现第十届蓝桥杯矩形切割
  • 原文地址:https://www.cnblogs.com/midworld/p/10471590.html
Copyright © 2020-2023  润新知