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[''].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方法

最新文章

  1. jquery富文本在线编辑器UEditor
  2. css3实现酷炫的3D盒子翻转效果
  3. elasticsearch 集群搭建
  4. Ubuntu修改文件关联
  5. PHP入门笔记
  6. grep -i 不区分大小写
  7. 两种方法解决tomcat的 Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
  8. Hadoop从伪分布式到真正的分布式
  9. JS constructor
  10. Keil 4 与Proteus 7.8联调
  11. 在Apache Tomcat 7设置redis作为session store
  12. UESTC 1811 Hero Saving Princess
  13. windows、linux创建子进程
  14. poj2405---体积几何
  15. Uva 409-Excuses, Excuses!(串)
  16. Spring AOP @Around @Before @After 区别
  17. BZOJ_3083_遥远的国度_树链剖分+线段树
  18. MySQL 死锁场景
  19. Eclipse 添加 Source 源代码、Javadoc 文档
  20. linux下安装EJBCA 搭建私有CA服务器

热门文章

  1. C++类成员指针(指向类成员的指针)
  2. 给input元素换样式
  3. 0057 Spring MVC如何获取HTTP请求头信息--URL中的动态参数--@RequestHeader--@CookieValue--@PathVariable
  4. mysql循环查询
  5. 跟着百度学PHP[17]-复习PDO的几个关键词
  6. springmvc-servlet.xml
  7. Chrome调试ECMAScript之断点debug技巧大全!
  8. storm 错误汇总
  9. CRF++使用说明
  10. .NET平台下 极光推送