• python常用方法详解


    1,讲序列分解为单独的变量

    p=(4,5)
    x,y=p
    print(x,y)

      如果在分解中想丢弃某些特定的值,可以采用_来进行

    data=['A','B','c','d']
    _,name,age,_=data
    print(_)
    print(name)
    print(age)

    2.从任意长度的可迭代对象中分解元素

      1>假设一门课程,我们需要去掉第一个成绩,和最后一个成绩,只取中间的数据的平均值,那么可以用*来进行处理

    line="nobody:*:-2:-2:yyyyyy:/var/empty:/usr/bin/fale"
    uname,*fields,homedir,sh=line.split(":")

    3,保存最后N个元素

      如果在处理过程中,对最后几项做一个有限的历史记录。我们可以用collections里面的deque,当我们设置最大长度的,它会自动清除时间比较长的数据

    from collections import deque
    #maxlen最大可以有3个值
    k=deque(maxlen=3)
    k.append(1)
    k.append(3)
    k.append(2)
    print(k)
    k.append(4)
    print(k)

    4,找打最大或最小的N个元素

      我们想在某个几个中找到最大和最小的几个元素,这里主要说明的是heapq模块,里面有2个函数nlargest和nsmallest

      

    import heapq
    nums=[1,8,2,23,7,-4,18,23,42,37,2]
    
    print(heapq.nlargest(3,nums))   #最大的三位数
    print(heapq.nsmallest(3,nums))  #最小的三位数
    protfollo=[
        {'name':'IBM','share':100,'price':91.1},
        {'name':'uuu','share':112,'price':100},
        {'name':'db','share':333,'price':67},
        {'name':'tt',"share":222,"price":454}
    ]
    
    # k=lambda x:x['price']
    # print(k({'name':'IBM','share':100,'price':91.1}))
    
    import heapq
    num=heapq.nsmallest(3,protfollo,key=lambda x:x['price'])
    print(num)

    5,在字典中将键映射到多个值上,可以用defaultdict

    from collections import defaultdict
    m=defaultdict(list)
    m['a'].append(1)
    m['a'].append(5)
    m['b'].append(2)
    m['5'].append(3)
    print(m)

    6,与字典有关的计算问题

    price={
        'ACE':45.23,'AApl':612,'SSS':205,'IBM':37
    }
    
    min_price=min(zip(price.values(),price.keys()))
    print(min_price)
    man_price=max(zip(price.values(),price.keys()))
    print(man_price)
    
    
    sort_obj=sorted(zip(price.keys(),price.values()))
    print(sort_obj)

    7,在两个字典中寻找相同点

    主要是字典的keys  和 item 也可以做集合的交集并集等运算
    a={'x':1,'y':2,'z':3}
    
    b={'w':10,'x':11,'y':2}
    
    print(a.keys() & b.keys())  #{'y', 'x'}
    
    print(a.keys() - b.keys()) #{'z'}
    
    print(a.items() & b.items()) #{('y', 2)}

    8,找出序列中出现次数最多的元素  Counter 函数  

    9,通过公共键对字典列表排序,,这里面用到啦itemgetter函数

    from operator import itemgetter
    
    rows=[
        {'fname':'brian','lname':'jones','uid':1003},
        {'fname':'rrr','lname':'jjjj','uid':1002},
        {'fname':'bbb','lname':'kkk','uid':1004},
        {'fname':'nnn','lname':'llll','uid':1001},
        {'fname':'mmm','lname':'fff','uid':1005},
    ]
    
    mink=sorted(rows,key=lambda x:x['uid'])
    print(mink)
    
    mink=sorted(rows,key=itemgetter('uid'))
    print(mink)

    10,根据字段将记录分组 itertool.groupby()

    rows=[
        {'address':'beijing','date':'07/01/2012'},
        {'address':'shanghao','date':'07/01/2012'},
        {'address':'hangzhou','date':'07/02/2012'},
        {'address':'suzhou','date':'07/02/2012'},
        {'address':'nanjing','date':'07/03/2012'},
        {'address':'xian','date':'07/04/2012'},
    ]
    
    from itertools import groupby
    from operator import itemgetter
    
    print(itemgetter('data'))

    11,将名字映射到序列的元素中  namedtuple方法

  • 相关阅读:
    算法第三章上机实践报告
    算法第3章作业
    算法第二章上机实验报告
    对二分法的理解和关于结对编程的看法
    轮播图终极版
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    作业01
  • 原文地址:https://www.cnblogs.com/1204guo/p/8321410.html
Copyright © 2020-2023  润新知