zoukankan      html  css  js  c++  java
  • Python 各种推导式

    列表推导式

    一般推导

    # 生成1、2、3、4、5、6、7、8、9、10的列表
    lis = [i for i in range(1,11)]
    

    带过滤条件的推导

    # 生成 0、2、4、6、8 的列表
    [i for i in range(10) if i % 2 == 0]
    

    带函数的推导

    # 生成 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 的列表
    
    func = lambda a:a**2
    
    lis = [func(i) for i in range(10)]
    

    字典推导式

    字典花式初始化

    # way1
    dic1 = {'name': 'monkey', 'gender': 'male'}
    # {'name': 'monkey', 'gender': 'male'}
    
    # way2
    dic2 = dict(name='monkey', gender='male')
    # {'name': 'monkey', 'gender': 'male'}
    
    # way3
    dic3 = dict(zip(('name', 'gender'), ('monkey', 'male')))
    # {'name': 'monkey', 'gender': 'male'}
    
    # way4
    lis = ['name', 'gender']
    dic4 = dict.fromkeys(lis, None)
    # {'name': None, 'gender': None}
    
    # way5
    dict([('name', 'monkey'), ('gender','male')])
    # {'name': None, 'gender': None}
    

    字典推导式

    # 将两个列表拟合成字典
    lis1 = [0, 1, 2, 3, 4, 5, 6]
    lis2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    
    dic = {k:v for k,v in zip(lis1, lis2)}
    

    集合推导式

    set1 = {i for i in range(10)}
    

    复合推导

    # 列表 字典 元组的复合
    [{k:(v,j)} for k,v,j in zip(lis, lis1, lis2)]
    
    # [
    # {0: (0, 'a')},
    # {1: (1, 'b')}, 
    # {4: (2, 'c')},
    #      ...
    # ]
    
  • 相关阅读:
    顺序队列的模板
    链式队列模板
    链式栈模板
    栈应用hanoi
    判断出栈顺序
    用栈实现四则运算
    两栈共享问题
    The Preliminary Contest for ICPC Asia Nanjing 2019
    Educational Codeforces Round 71 (Rated for Div. 2)
    HDU6583:Typewriter(dp+后缀自动机)
  • 原文地址:https://www.cnblogs.com/monkey-code/p/13158905.html
Copyright © 2011-2022 走看看