zoukankan      html  css  js  c++  java
  • 推导式

    推导式(comprehensions)(在中文又称解析式)

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

    共有三种推导

    在Python 2和3中都有支持:
    列表(list)推导式
    字典(dict)推导式
    集合(set)推导式

    列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。

    它的结构是在一个中括号里包含一个表达式,然后是一个 for 语句,然后是0个或多个 for 或者 if 语句。
    那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。
    返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

    
    multiples = [i for i in range(30) if i % 3 is 0]
    print(multiples)
    '''
    ###列表推导式在有些情况下超赞,特别是当你需要使用 for 循环来生成一个新列表。
    举个例子,你通常会这样做:
    '''
    squared = []
    for x in range(10):
        squared.append(x**2)
    squared1 = [x**2 for x in range(10)]
    print(squared,squared1)
    

    字典推导式(dict comprehensions)

    疑惑点:该例子中我们把同一个字母但不同大小写的值合并起来了;但这个为什么只会加一次呢

    缘由:这里的 k.lower()会把从keys()中提取出来的键变为小写,而字典中相同的键输出的话,会输出最后一个.
    指的就是a,这就类似最终得到的结果有2个是a的键,我们取较后面一个键值;

    mcase = {'a': 10, 'b': 34,'a':22, 'A': 7, 'Z': 3}
    '''该例子中我们把同一个字母但不同大小写的值合并起来了;这个为什么只会加一次呢'''
    print('字典的键重复报什么错',mcase) # 以该键在字典中的最后一项作为字典并输出
    for i,j in mcase.items(): # 输出字典的键值对用.items(),返回序列的下标用enumerate(序列)
        print(i,j)
    print(mcase.keys)
    mcase_frequency = {
        k.lower(): mcase.get(k.lower(),0) + mcase.get(k.upper(),0) 
        for k in mcase.keys()
    }
    print(mcase_frequency)
    
    # 快速替换一个字典的键和值
    # {v: k for k, v in some_dict.items()}
    

    集合推导式(set comprehensions)

    squared = {x**2 for x in [1, 1, 2]}
    print(squared) # {1, 4}
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15269616.html
Copyright © 2011-2022 走看看