• 63.字典推导式


    字典推导式

    字典推导式语法和列表推导式语法类似:

    my_dict = { expr for value in collection if condition }

    我们下面将两个列表转换成一个字典:

    keys = ['a', 'b', 'c', 'd']
    vals = [10, 20, 30, 40]
    my_dict = {key: value for key, value in zip(keys, vals)}
    print(my_dict)

    例子1:

    # 01:
    # 准备两个列表
    keys = ["a", "b", "c", "d"]
    values = [1, 3, 5, 7]
    
    # 定义一个字典(空字典)
    my_dict = {}
    
    # 循环
    for i, key in enumerate(keys):
        # 添加元素
        my_dict[key] = values[i]
    print(my_dict)

    运行结果:

    {'a': 1, 'b': 3, 'c': 5, 'd': 7}

    例子2:

    import sys
    
    
    # 02: zip函数
    a = [1, 2, 3]
    b = [4, 5, 6]
    c = [7, 8, 9]
    # 计算a b c 分别占用了多少内存空间
    # 占用88字节
    # 1024字节 = 1kb
    print(sys.getsizeof(a))
    print(sys.getsizeof(b))
    print(sys.getsizeof(c))

    运行结果:

    88
    88
    88

    例子3:

    import sys
    
    
    # 02: zip函数
    a = [1, 2, 3]
    b = [4, 5, 6]
    c = [7, 8, 9]
    # 计算a b c 分别占用了多少内存空间
    # 占用88字节
    # 1024字节 = 1kb
    # print(sys.getsizeof(a))
    # print(sys.getsizeof(b))
    # print(sys.getsizeof(c))
    # 压缩
    my_zip = zip(a, b, c)
    print(sys.getsizeof(my_zip))
    print(list(my_zip))

    运行结果:

    64
    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    例子4:

    import sys
    
    
    # 02: zip函数
    a = [1, 2, 3]
    b = [4, 5, 6]
    c = [7, 8, 9]
    # 计算a b c 分别占用了多少内存空间
    # 占用88字节
    # 1024字节 = 1kb
    # print(sys.getsizeof(a))
    # print(sys.getsizeof(b))
    # print(sys.getsizeof(c))
    # 压缩
    my_zip = zip(a, b, c)
    # print(sys.getsizeof(my_zip))
    # print(list(my_zip))
    # # 解压缩
    a1, b1, c1 = zip(*my_zip)
    print(a1)
    print(b1)
    print(c1)

    运行结果:

    (1, 2, 3)
    (4, 5, 6)
    (7, 8, 9)

    例子5:

    # 03: 字典推导式
    # 准备两个列表
    keys = ["a", "b", "c", "d"]
    values = [1, 3, 5, 7]
    # my_zip = zip(keys, values)
    # print(list(my_zip))
    my_dict = {k:v for k, v in zip(keys, values)}
    print(my_dict)

    运行结果:

    {'a': 1, 'c': 5, 'b': 3, 'd': 7}

    例子6:

    import sys
    
    
    
    # 04:
    # 列表推导式
    my_list = [i for i in range(10000)]
    print(sys.getsizeof(my_list))
    # 生成器
    g = (i for i in range(10000))
    print(type(g))
    print(sys.getsizeof(g))

    运行结果:

    87624
    <class 'generator'>
    88
  • 相关阅读:
    Vue响应式原理
    vue 与 react
    vuex
    受控组件( controlled component )与不受控制的组件( uncontrolled component )区别
    redux学习语录
    Flux
    MVC和MVVM 架构模式/设计思想
    immutable
    JS中一些兼容性问题
    @芥末的糖 ---------- node连接数据库两种方式mysql和moogoDB
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12853740.html
Copyright © 2020-2023  润新知