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')},
    #      ...
    # ]
    
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/monkey-code/p/13158905.html
Copyright © 2011-2022 走看看