Python的一些常用排序和替换操作

原创 146阅读 · 时间2019年3月20日 12:41


替换列表元素

    # 替换一个(1替换为5)
    l = [1, 2, 3, 4]
    r = [5 if x == 1 else x for x in list]
    print(r)
    [5, 2, 3, 4]
    
    
    # 替换多个(2,4 替换为 a)
    l = [1, 2, 3, 4, 5]
    p = [2, 4]
    r = ['a' if x in pattern else x for x in l]
    print(r)
    [1, 'a', 3, 'a', 5]
    
    
    # 映射替换(1替换为one,2替换为two)
    l = [1, 2, 3, 4, 5]
    d = {1:'one', 2'two'}
    r = [d[x] if x in dict else x for x in list]
    print(r)
    ['one', 'two', 3, 4, 5]



列表排序

    # sore 内建方法
    # sort 方法会修改list本身,不会返回新的list
    l = [3, 5, 1, 4, 2]
    l.sort()
    print(l)
    [1, 2, 3, 4, 5]
    
    
    # sorted 内建方法
    # sorted 方法会返回新的list
    l = [3, 5, 1, 4, 2]
    new_l = l.sorted()
    print(new_l)
    [1, 2, 3, 4, 5]



字典排序

    需要引入operator
    import operator
    
    d = {'d1':3, 'd2':1, 'd3':2, 'd4':4},
    
    # operator.itemgetter
    sorted(iterable,key,reverse);
    # iterable表示可迭代对象
    # key是一个函数,用来选取参与比较的元素
    # reverse则是用来指定排序是倒序还是顺序(reverse=true是倒序)
    
    sorted(d.iteritems(), key=operator.itemgetter(1), reverse=True)

数值计算


    内置函数

    # max取列表最大值
    l = [1, 2, 3, 4, 5]
    print(max(l))
    5
    
    # round(float, 2)保留两位小数
    f = 2.232323232323
    round(f, 2)
    2.23

    numpy使用

    # 一些使用小技巧
    
    l = [1, 2, 3, 3, 5]
    # 需要先安装numpy 
    pip install numpy
    
    # unique函数去除其中重复的元素,并按元素由大到小返回一个新的无重复元素
    print(numpy.unique(l).tolist())
    [1, 2, 3, 5]
    
    # mean计算列表平均值
    print(numpy.mean(l))
    
    # sum计算总流量
    print(numpy.sum(l))



一些时间操作

    处理时间的包
    from dateutil import parser
    import datatime
    import time
    
    #毫秒转日期
    time_s = float(time_n/1000)        # 毫秒除1000得到秒
    time_a = time.localtime(time_s)    # 秒转日期
    time.strftime("%Y-%m-%d %H:%M:%S", timeArray)# 格式化日期
    
    # 处理字符串时间isoData时间格式
    date_s = datatime.strptime(jsonData['time'], '%Y-%m-%d %H:%M:%S').isoformat()
    # 然后转换为isoData时间格式
    parser.parse(dateSer)



评论

You

相关文章推荐 ?
近七日热文推荐 !
回到顶部