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小记列表排序的更多相关文章

  1. Python的列表排序

    Python的列表排序 本文为转载,源地址为:http://blog.csdn.net/horin153/article/details/7076321 在 Python 中, 当需要对一个 list ...

  2. python中列表排序,字典排序,列表中的字典排序

    #-*- encoding=utf-8 -*- # python3代码 import operator 一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} 1 ...

  3. 【380】python 获取列表排序后的索引列表

    参考:Equivalent of Numpy.argsort() in basic python? - Stack Overflow 通过 enumerate 实现 [i for i,v in sor ...

  4. python 字典列表排序operator.itemgetter()

    举例: import operator x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}] sorted_x = sorted(x, ...

  5. Python list列表的排序

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...

  6. 【python cookbook】【数据结构与算法】13.通过公共键对字典列表排序

    问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter()函数对这类结构进行排序是非常简单的. # Sort a list of a dicts on ...

  7. Python 列表排序方法reverse、sort、sorted详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  8. python 字典排序,列表排序详细

    在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按“键”排序和按“值”排序. 1.按“值 ...

  9. Python判断列表是否已排序的各种方法及其性能分析

    目录 Python判断列表是否已排序的各种方法及其性能分析 声明 一. 问题提出 二. 代码实现 2.1 guess 2.2 sorted 2.3 for-loop 2.4 all 2.5 numpy ...

随机推荐

  1. (转)iOS7界面设计规范(2) - UI基础 - iOS应用解析

    今天再来一发,然后结束掉周六的忙碌,去吃零食,还有冰啤酒:其实现在打嗝还有小龙虾味儿呢. 第二篇更多的是从技术的角度对iOS界面组成原理进行了简单的解析,篇幅很短,可稍作了解:更多关于iOS开发入门的 ...

  2. Wince修改系统时间问题

           当我们需要修改到系统时间的时候,需要用到下面四个函数:SetLoaclTime,GetLocalTime,SetSystemTime,GetSystemTime.这四个函数是用来修改或者 ...

  3. Android Dependencies小差号引起的问题

    问题是由于Android Dependencies小差号引起的,下午一搞Android的哥们在群里说最近导入的几个工程每个都是Android Dependencies报错,小差号,我先说解决方法: 方 ...

  4. Android Studio使用技巧系列教程(二)

    尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58/article/details/46764575 关注新浪微博:@于卫国 邮箱:yuweiguocn@gmai ...

  5. java foreach循环为什么不能赋值

    直接上代码 public class test4 { public static void main(String args[]){ int [] a=new int[3]; for(int j:a) ...

  6. Less 教程

    1. 关于 less sass 的预编译处理器 LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, ...

  7. [CSAPP笔记][第二章信息的表示和处理]

    信息的表示和处理 2.1 信息存储 机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器. 存储器的每个字节由一个唯一的数字表示,称为它的地址 所有可能地址的集合称为虚拟地址空间 2.1.1 十 ...

  8. 利用MiddleGen-hibernate-r5生成hbm文件及POJO文件

    1       先决条件 1.1    已安装JDK(版本1.5以上)并配置环境变量 到http://java.sun.com上下载JDK,配置环境变量(我的电脑右键->属性->高级-&g ...

  9. poj2709 贪心基础

    D - 贪心 基础 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bi ...

  10. C++ 虚函数详解

    C++ 虚函数详解 这篇文章主要是转载的http://blog.csdn.net/haoel/article/details/1948051这篇文章,其中又加入了自己的理解和难点以及疑问的解决过程,对 ...