zoukankan      html  css  js  c++  java
  • python高级内置函数和各种推导式的介绍:一行搞定的代码

    一、知识要点

    all 都为真
    any 有真的
    min 最小的
    max 最大的
    sum 求和
    reversed 反转
    sorted 排序
    zip 对应合并
    [] 列表推倒式
    () 生成器
    {} 字典推倒式
    set 去重
    if三元操作符 xx if x else y
    ennmerate 枚举,带索引
     

    二、 代码

    "1. all"
    # 参数为一个可迭代的对象(Iterable)
    m =[1, 2, 3, 4, '']  # 当然不是这样简答的使用
    print(all(m))
    
    def a1():
        # 完成一系列操作
        return False
    
    def a2():
        # 完成一系列操作
        return True
    
    def a3():
        # 完成一系列操作
        return True
    
    if all([not a1(),a2(),a3()]):
        # 前一个为假,最后为真运行这里
        print('are u ok')
    
    "2. any"
    # 只要有真的就运行,参数也是一个可迭代的对象
    print(any([0,'',' ']))  # True
    
    "3. min,max"
    print(min([10,2,3,4,5]))
    print(max([10,2,3,4,5]))
    
    "4. sum"
    # 两个参数:第一个参数可迭代的对象数组,第二个参数为前面累加和 再加上这个参数,当第一个参数为空,直接返回第二个参数
    print(sum(range(100),10))
    
    "5. reversed"
    # 对一个序列进行反转,返回一个可迭代的对象
    li_m = [123,32,234,2123,43,12,53]
    
    for i in reversed(li_m):
        print(i)
    
    [i for i in reversed(li_m)]  # 使用列表推倒式一行搞定
    
    
    "6. sorted排序"
    # 默认的列表排序
    li_m = [123,32,234,2123,43,12,53]
    li_m.sort()  # 有两个参数 key 与 revered
    print(li_m)
    
    # sorted 是返回一个新列表
    new_li = sorted([1,34,123,111,23])
    print(new_li)
    new_li = sorted([-1,-3,-9,2,4], key=abs)  # 根据绝对值进行排序,也可以使用lambda排序
    print(new_li)
    
    "7. zip"
    # 拉链,合并两个序列(一一对应)
    x = [1,2,3,4,5]
    y = ['a', 'b', 'c']
    print(list(zip(x, y)))
    print(dict(zip(x,y)))
    
    "8. 推倒式"
    # 列表推倒-->也可以使用map推到,但是比较麻烦
    print([x for x in range(10)])
    print([x*100 for x in range(10)])
    print([x for _ in rang(len(list))]) # 当某个参数使用不到的时候,直接使用_代表,避免浪费变量
    # 生成器表达式----> 优先使用这个,节约内存 print((x**3 for x in range(8))) for i in (x**3 for x in range(8)): print(i) # 字典推导式 # 把下面的v转换为大写 info = {'louhui':'hz','laoniu':'hengxi','caoyu':'dongwu'} # 1,常规做法 info_new = {} for k,v in info.items(): info_new[k] = v.upper() print(info_new) # 2. 字典推到 a = {k:v.upper() for k,v in info.items()} print(a) "9. 去重" s = [1,2,2,2,33,43,3,3,3,] ss = set(s) print(ss) "10. 三元操作符" # 前面是返回值,如何为真,则用前面,为假则为后面的值 True if s == 'a' else False # 一般用在函数的返回值 def func(s): # many return True if s =='a' else False "11. 枚举" # 就是给列表加上下表 menu = ['add', 'del', 'modfiy', 'find'] for num, m in enumerate(menu): print(num+1,m)
  • 相关阅读:
    获取文件扩展名的几个函数
    Window下,在TEMP路径下生成一个临时文件名
    字符串中的TOUPPER函数
    字符串中的TRIM操作
    BIN转换成HEX格式及HEX转换成BIN的两个函数接口
    GMSSL在Window下的编译
    VS2012下自定义打开文件对话框
    Daliy Algorithm (graph,思维)-- day 59
    Daliy Algorithm (贪心,gcd)-- day 58
    图论--Floyd(弗洛伊德)算法
  • 原文地址:https://www.cnblogs.com/louhui/p/9383115.html
Copyright © 2011-2022 走看看