码迷,mamicode.com
首页 > 编程语言 > 详细

python常用方法详解

时间:2018-01-20 18:54:53      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:home   处理   col   有关   分组   ges   class   opera   res   

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方法

 

python常用方法详解

标签:home   处理   col   有关   分组   ges   class   opera   res   

原文地址:https://www.cnblogs.com/1204guo/p/8321410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!