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

python常用方法详解的更多相关文章

  1. python线程详解

    #线程状态 #线程同步(锁)#多线程的优势在于可以同时运行多个任务,至少感觉起来是这样,但是当线程需要共享数据时,可能存在数据不同步的问题. #threading模块#常用方法:'''threadin ...

  2. $.ajax()常用方法详解(推荐)

    AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分.接下来通过本文给大家介绍ajax一些常用方法,大家有需要可以一起学习. 1.url: 要求为String类型的参数 ...

  3. Python闭包详解

    Python闭包详解 1 快速预览 以下是一段简单的闭包代码示例: def foo(): m=3 n=5 def bar(): a=4 return m+n+a return bar >> ...

  4. [转] Python Traceback详解

    追莫名其妙的bugs利器-mark- 转自:https://www.jianshu.com/p/a8cb5375171a   Python Traceback详解   刚接触Python的时候,简单的 ...

  5. 【Java】HashMap源码分析——常用方法详解

    上一篇介绍了HashMap的基本概念,这一篇着重介绍HasHMap中的一些常用方法:put()get()**resize()** 首先介绍resize()这个方法,在我看来这是HashMap中一个非常 ...

  6. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  7. Python 递归函数 详解

    Python 递归函数 详解   在函数内调用当前函数本身的函数就是递归函数   下面是一个递归函数的实例: 第一次接触递归函数的人,都会被它调用本身而搞得晕头转向,而且看上面的函数调用,得到的结果会 ...

  8. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  9. Python Collections详解

    Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...

随机推荐

  1. 150. Best Time to Buy and Sell Stock II【medium】

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  2. poj Squares n个点,共能组成多少个正方形 二分 + 哈希

    题目链接:http://poj.org/problem?id=2002 测试数据: 41 00 11 10 090 01 02 00 21 22 20 11 12 14-2 53 70 05 20 有 ...

  3. 李洪强IOS开发之iOS好项目收集

    李洪强IOS开发之iOS好项目收集 在这里收集一些最近出现的比较实用好玩的框架或者项目,会不断更新 项目 简述 日期 SCTableViewCell 类似与QQ侧滑删除Cell的Demo 201501 ...

  4. 使用 Bolt 实现 GridView 表格控件

    用 Bolt 实现了一个表格控件: 1. 提供 Insert,Remove,Get,Set 接口,可以为表格增删数据: 2. 通过  ItemClass, ItemSetDataFunc 属性来指定显 ...

  5. Installing OwnCloud 9 on Debian 8

    原文:https://www.howtoforge.com/tutorial/owncloud_9-installation-on-debian_8/?utm_source=tuicool&u ...

  6. PHP学习笔记(6)js点击刷新验证码

    用“换一张”来控制验证码刷新,js脚本怎么写 宏朋雄 | 浏览 3663 次  2012-06-11 22:41 2012-06-12 01:49   最佳答案   <img src=“验证码文 ...

  7. nginx 为什么要反向代理 影藏后端 高效连接(给nginx,他自己返回) 端口冲突解决 多个服务

    nginx 为什么要反向代理  影藏后端   高效连接(给nginx,他自己返回)  端口冲突解决  多个服务 单机使用反向代理可以根据不同url匹配到不同站点   rsync 的工作原理和应用实例 ...

  8. 【Mac + GitHub】之在另一台Mac电脑上下载GitHub的SSH链接报错

    当输入git命令github项目时报错: ⇒ git clone git@github.com:/TX-Class.git Cloning into 'TX-Class'... Warning: Pe ...

  9. 尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言

    “尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言”. 无论C++还是Java 都属于杂合语言.但在 Java 中,设计者觉得这种杂合并不象在 C++里那么重要.杂合语言 允许采用 ...

  10. backbone Model调用save方法的时候提交方式

    horizon使用的是backbone框架,但是我们的后台api都是只接收post请求,请求的路径为/api/,根据backbone的官档解释: backbone的model.save方法会判断当前的 ...