python小记列表排序
a=[('b',4),('a',7),('c',2)]
正向排序a.sort()
反向排序:a.sort(reverse=True)
对第二关键字排序
a.sort(lambda x,y:cmp(x[1],y[1]))
a.sort(key=lambda x:x[1])
第三种用模块:
import operator
a.sort(key=operator.itemgetter(1))
前3种是对list item中某一项进行排序
第四种使用(Decorate-Sort-Undercorate)(对list排序的方法)
A=[(x[1],i,x)for i,x in enumerate(a)]
A.sort()
笔试题目:
删除list中重复的元素
list(set(list))
{}.fromkeys([list]).keys()
单例模式,从始至终都只有一个实例
class Singleton(object):
def __new__(cls, *args, **kwargs):
if '_inst' not in vars(cls):
cls._inst = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._inst
求list交集
a=[1,2,3]
b=[2,3,4]
[ab for ab in a if ab in b ]
有个什么打印1到1000,打印形式是000001,000002,。。。。001000
"1".ljust(6,'0')===>'100000'
"1".rjust(6,'0')===>'000001'
"1".zfill(6)===>'000001'
"1000".zfile(6)===>'001000'
当a,b 的值是一样的时候,返回同一个对象
将new出来的新对象保存在一个列表中
class C(object):
lstObj=[]
def __init__(self,a,b):
print "__init__"
self.a = a
self.b = b
def __new__(cls, *args, **kwargs):
print "__new__"
for obj in cls.lstObj:
if obj.a == args[0] and obj.b == args[1]:
return obj
obj = object.__new__(cls, *args, **kwargs)
cls.lstObj.append(obj)
return obj
>>> a = C(1,2)
__new__
__init__
>>> b = C(1,2)
__new__
__init__
>>> a==b
True
>>>
什么是lambda函数
lambda函数是匿名函数。匿名是因为不需要以标准的方式来声明,比如说,
使用 def 语句。(除非赋值给一个局部变量,这样的对象也不会在任何的名字空间内创建名字.)然而,
作为函数,它们也能有参数。一个完整的 lambda“语句”代表了一个表达式,这个表达式的定义体
必须和声明放在同一行。匿名函数的语法:
lambda [arg1[, arg2, ... argN]]: expression
参数是可选的,如果使用的参数话,参数通常也是表达式的一部分。
例子
key=lambda x:x+1
key(2)===>3
B=[s[2]for s in A]
效率比较
cmp<DSU<key
第5种
a.sort(key=lambda x:x[1])
第6种
a.sort(key=lambda x:x[1],x[0])
第7种
a.sort(key=operator.itemgetter(1,0))
import os
def c():
print 'a:',os.getpid()
print 'b:',os.getppid()
os._exit()
def c1():
while 1:
new=os.fork()
print new
if new==0:
c()
else:
pis=(os.getpid().new)
print pis
print'cc:',os.getppid()
if raw_input()=='q':
break
c1()
装饰器,装饰器实际就是函数
你可以考虑在装饰器中置入通用功能的代码来降低程序复杂度。例如,可以用装饰器来:
1 引入日志
2 增加计时逻辑来检测性能
2 给函数加入事务的能力
例子:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
python小记列表排序的更多相关文章
- Python的列表排序
Python的列表排序 本文为转载,源地址为:http://blog.csdn.net/horin153/article/details/7076321 在 Python 中, 当需要对一个 list ...
- python中列表排序,字典排序,列表中的字典排序
#-*- encoding=utf-8 -*- # python3代码 import operator 一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} 1 ...
- 【380】python 获取列表排序后的索引列表
参考:Equivalent of Numpy.argsort() in basic python? - Stack Overflow 通过 enumerate 实现 [i for i,v in sor ...
- python 字典列表排序operator.itemgetter()
举例: import operator x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}] sorted_x = sorted(x, ...
- Python list列表的排序
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...
- 【python cookbook】【数据结构与算法】13.通过公共键对字典列表排序
问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter()函数对这类结构进行排序是非常简单的. # Sort a list of a dicts on ...
- Python 列表排序方法reverse、sort、sorted详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- python 字典排序,列表排序详细
在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按“键”排序和按“值”排序. 1.按“值 ...
- Python判断列表是否已排序的各种方法及其性能分析
目录 Python判断列表是否已排序的各种方法及其性能分析 声明 一. 问题提出 二. 代码实现 2.1 guess 2.2 sorted 2.3 for-loop 2.4 all 2.5 numpy ...
随机推荐
- 提交App到Apple Store(Xcode4)
昨 天终于顺利把公司的App提交了,还是很开心的.这是我第一个开发超过2个月的项目,开发期间学到了很多东西,接下来的时间我会逐渐梳理一下.来个倒叙, 今天就先说下怎么提交的吧.Xcode4以后,提交过 ...
- 【编程范式】汇编解释swap方法
先要熟悉一些汇编的基本知识: 1.SP是什么? SP是堆栈寄存器,在调用子程序时,都会用到,保存原来程序的环境使用,如各个寄存器的内容,最重要的是,调用返回时程序的运行指令地址,这是由调用时将返回地址 ...
- MySql索引原理与使用大全
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 一.索引介绍 索引是对数据库表中一列或多列的值进行排序的一种结构.在关系数据库中,索引是一种 ...
- how tomcat works 读书笔记(一)----------一个简单的webserver
http协议 若是两个人能正常的说话交流,那么他们间必然有一套统一的语言规则<在网络上server与client能交流也依赖与一套规则,它就是我们说的http规则(超文本传输协议Hypertex ...
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...
- android 开发随笔 - 开发环境搭建
1.1 问题: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to J ...
- 针对淡入淡出的定时轮播效果js
如果不使用jquery的fadeIn和fadeOut的接口和不适用animate情况下,如果要做用js实现淡入淡出轮播效果,我所想到的办法就是使用css3新特性transition(注意好兼容性). ...
- centos打开3306端口
centos默认是关闭了3306端口的,外网通过3306端口不能访问数据库,这时需呀打开3306端口1.打开端口: /sbin/iptables -I INPUT -p tcp --dport 330 ...
- (原).cc 和 .cpp 后缀结尾的文件的区别
This caused a few problems the first time C++ was ported to a system where case wasn't significant i ...
- Hdu1108(最小公倍数)
#include <stdio.h> int main() { int Num1,Num2; while(scanf("%d %d",&Num1,&Nu ...