python
文章平均质量分 58
sleep365
这个作者很懒,什么都没留下…
展开
-
统计目录中文件的行数
import os import fileinput dest="/root/log" for root,dirs,filename in os.walk(dest): for file in filename: f=os.path.join(root,file) for each in fileinput.input(f):转载 2014-04-04 09:11:59 · 616 阅读 · 0 评论 -
python dict排序之一
python dict的特点就是无序的,按照key来提取相应value,如果我们需要对value进行排序的话,那python dict排序可以按照下面的方法来进行:下面的是按照value的值从大到小的顺序来排序。dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}dict= sorted(dic.iteritems(),转载 2014-01-13 21:26:15 · 665 阅读 · 0 评论 -
Python字典按值排序、包含字典的列表按字典值排序的方法
#-*- encoding=utf-8 -*-import operator#按字典值排序(默认为升序)x = {1:2, 3:4, 4:3, 2:1, 0:0}sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))print sorted_x#[(0, 0), (2, 1), (1, 2), (4, 3), (3,转载 2014-01-27 21:00:21 · 615 阅读 · 0 评论 -
python:常用功能之文本处理
前言在生活、工作中,python一直都是一个好帮手。在python的众多功能中,我觉得文本处理是最常用的。下面是平常使用中的一些总结。环境是python 3.30. 基础在python中,使用str对象来保存字符串。str对象的建立很简单,使用单引号或双引号或3个单引号即可。例如:s='nice' #output: nice s="nice" #转载 2014-01-25 21:28:10 · 583 阅读 · 0 评论 -
如何成为Python高手
导读:本文是从《How to become a proficient Python programmer》这篇文章翻译而来。译文来自外刊IT评论《如何成为Python高手》。内容如下:这篇文章主要是对我收集的一些文章的摘要。因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章。我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范。如转载 2014-01-24 23:37:05 · 537 阅读 · 0 评论 -
关于闭包(二)
闭包并不是什么新奇的概念,它早在高级语言开始发展的年代就产生了。51CTO在此之前也曾陆续报导了《学习Scala的闭包》、《PHP 5.3闭包语法初探》以及《揭开Javascript闭包的真实面目》。闭包(Closure)是词法闭包(Lexical Closure)的简称。对闭包的具体定义有很多种说法,这些说法大体可以分为两类:◆一种说法认为闭包是符合一定条件的函数,比如参考资源中这样转载 2014-01-25 21:32:57 · 634 阅读 · 0 评论 -
lambda函数
lambda函数是一种快速定义单行的最小函数,是从 Lisp 借用来的,可以用在任何需要函数的地方。下面的例子比较了传统的函数与lambda函数的定义方式前几天看到了一行求1000的阶乘的Python代码Python代码print reduce(lambda x,y:x*y, range(1, 1001)) 一下子被pytho转载 2014-01-25 21:36:24 · 788 阅读 · 0 评论 -
python yield用法
这篇文章写的太好了,学习收藏了。原贴:http://blog.csdn.net/u011249248/article/details/18733665初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地转载 2014-01-24 23:34:49 · 621 阅读 · 0 评论 -
转帖多线程编程使用互斥锁同步线程
http://blog.csdn.net/u011249248/article/details/18659213由于每个线程互相独立,相互之间没有任何关系,你干你的,我干我的,互相不干扰。如果要几个线程同时干一件事怎么办,由于互相不走动,如果一个线程已经做过了,另一个线程再去做,不就重复了吗,很容易乱套。现在假设这样一个例子:有一个全局的计数num,每个转载 2014-01-24 23:13:58 · 930 阅读 · 0 评论 -
set去重
Python利用set去除重复元素的方式,如下:print '\n'.join(set(open('done.txt').read().split('\n'))) print ''.join(set([x for x in open('done.txt').readlines() if x.strip()!=''])) a = [5, 2, 5, 1,原创 2014-01-16 15:52:27 · 683 阅读 · 0 评论 -
python中maketrans和translate的用法
python中maketrans和translate的用法案例1.首先说下maketrans函数是生成一个翻译表,比如将‘abc',按照顺序翻译成'ABC'。就可以这样写import stringt=string.maketrans('abc','ABC')将字符'a'->'A','b'->'B','c'->'C'。然后使用translate函数’abc123‘.trans转载 2014-01-16 16:55:07 · 1395 阅读 · 1 评论 -
Python进阶-- 函数的参数对应
回忆一下位置传递:def f(a,b,c): return a+b+cprint(f(1,2,3))在调用f时,1,2,3根据位置分别传递给了a,b,c。 关键字传递有些情况下,用位置传递会感觉比较死板。关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。依然沿用上面f的定义,更改调用方式:print(f(c=3转载 2014-01-29 21:35:30 · 649 阅读 · 0 评论 -
Python中实现多属性排序
我们有一组记录:1234567list_records =( (department, name, salary), (department, name, salary), ... (department, name, salary))然后我们想进行类似 MS – Exc转载 2014-01-29 22:47:44 · 840 阅读 · 0 评论 -
Python中*args 和**kwargs的用法
def fun_var_args(farg, *args): print "arg:", farg for value in args: print "another arg:", value fun_var_args(1, "two", 3) # *args可以当作可容纳多个变量组成的list转载 2014-02-02 21:42:16 · 766 阅读 · 0 评论 -
提取海量文本文件中含有指定字符串的行
在工作中遇到一个提取一个目录中所有文本文件中含有特定字符串的行,并将其写入一个文件,于是有了以下代码。# -*- coding: utf8 -*-import osimport sysimport globimport timereload(sys)sys.setdefaultencoding('utf-8')abspath = os.path.dirname(__file__原创 2014-02-15 22:08:15 · 5694 阅读 · 0 评论 -
再谈*arg或**arg
Python函数参数可以用星号+形参名形式(*arg或**arg)方式。其中*arg方式必须在传统参数后边出现,而**arg则必须在*arg后出现。def test(x, y=5, *a, **b): print x, y, a, b函数调用结果:test(1) ===> 1 5 () {}test(1,2) ===> 1 2 () {}test(1,2,3) ===> 1 2转载 2014-02-15 21:59:09 · 999 阅读 · 0 评论 -
python中os.path.dirname(__file__)和sys.path[0]使用
python中os.path.dirname(__file__)的使用 (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python c:/python27/test/test.py 那么将输出 c:/python27/test/ (2).当"print原创 2014-02-14 21:09:33 · 6778 阅读 · 0 评论 -
python coobook 2 ---字符串对齐
字符串对齐>>> print '|','abc'.ljust(20,'_'),'|','abc'.rjust(20,'_'),'|','abc'.center(20,'_')| abc_________________ | _________________abc | ________abc_________>>>原创 2014-02-26 16:14:38 · 899 阅读 · 0 评论 -
python cookbook 学习笔记--1
每次处理一个字符,有以下三种方法:1for c in thestring: do_something_with(c)2result=[do_something_with(c) for c in thestring]3result=map(do_something,thestring)原创 2014-02-26 15:59:26 · 593 阅读 · 0 评论 -
再谈*在参数中的使用
看图说话。原创 2014-02-23 21:36:10 · 624 阅读 · 0 评论 -
刚想到一个统计文件行数的方法
看图说话,不论性能如何,只是想到的一个用法。原创 2014-02-23 22:58:49 · 624 阅读 · 0 评论 -
Python中字符编码的总结和对比:Python 2.x的str和unicode vs Python 3.x的bytes和str
http://www.crifan.com/summary_python_2_x_common_string_encode_decode_error_reason_and_solution/转载 2014-02-22 20:30:06 · 945 阅读 · 0 评论 -
zip的妙用--矩阵行列交换
今天看到一个例子,发现了zip的强大之处。列表推导式可以嵌套。考虑以下的 3x4 矩阵, 一个列表中包含三个长度为4的列表:>>> matrix = [... [1, 2, 3, 4],... [5, 6, 7, 8],... [9, 10, 11, 12],... ]现在,如果你想交换行和列,可以用嵌套的列表推导式:原创 2014-02-21 16:54:43 · 887 阅读 · 0 评论 -
PYTHON之Ordered Dict
python有一个排序字典对象,但是很少有人提及>>> d = OrderedDict([('a', 'b'), ('c', 'd')])>>> d.update({'foo': 'bar'})>>> dcollections.OrderedDict([('a', 'b'), ('c', 'd'), ('foo', 'bar')])以下的基本操作as keys(), values()原创 2014-02-21 14:01:11 · 1368 阅读 · 0 评论 -
小爬虫——下载给定网页上的图片
来一个小的程序,学习一下正则表达式和urllib库的运用转自:http://blog.csdn.net/u011249248/article/category/1476523# -*- coding: utf-8 -*-import reimport urllibdef getHtml(url): #找出给出网页的源码 page = urllib.urlop转载 2014-01-24 22:54:11 · 655 阅读 · 0 评论 -
强大的list列表解析功能
去掉列表中每个元素头尾的空格 >>> freshfruit = [' banana', ' loganberry ', 'passion fruit '] >>> [str.strip() for str in freshfruit] ['banana', 'loganberry', 'passion fruit'] 把列表中,大于3的元素,乘以2 >>> vec原创 2014-01-11 22:34:17 · 1440 阅读 · 0 评论 -
python关于变量的说明
>>> a=3>>> a='1235'>>> a=1.23以上程序执行后,A好象从整数类型变成 了小数。变量没有类型,类型属于对象,而不是对象名,就以上的例子而言,我们只是把a修改为对不同对象的引用,实际上并没有改变对象a的类型,也就是变量在特定的时间引用了一个特定的对象。原创 2013-12-31 09:18:49 · 613 阅读 · 0 评论 -
python基础(5)--正则表达式
1,re模块在python中,正则表达式的模块是RE2,正则表达式中的特殊字符符号 含义 re例子. 匹配任何一个字符(除了NEWLINE) b.b^ 匹配字符串的开始转载 2012-12-18 18:49:43 · 333 阅读 · 0 评论 -
python基础要点(2)-表达式
1, if语句.一般语法#cond表达式为真执行,执行express表达式if cond: express.多重条件#多重条件可以用and,or,not等if a or not b: doit.单一语句块#单一语句可以写在:号的后面,但不推荐这样写if you: dowork().单e转载 2012-12-18 18:47:26 · 465 阅读 · 0 评论 -
常见python编程问题积累
#列表相关*如何去掉list中的重复元素.使用set(集合) list1=[1,1,2,3,1,1,2,3,4,5,6,1,1]list_uniq = list(set(list1))解答:要善于利用集合的概念 *如何把字符串转成列表.使用换行符分割str = "111\n222\n333\n"list1 = str.splitlines()转载 2012-12-18 18:53:07 · 455 阅读 · 0 评论 -
python基础(6)--字符处理
1,字符串处理基本方法.提取子字符串#法1:使用切片操作>>> 'hello world'[2:8]'llo wo'.合并两个字符串#法1:使用运算符+>>> 'hello ' + 'world''hello world'#法2: 使用运算符*>>> 'hello '*2'hello hello '#使用join合并多个字符串>>>转载 2012-12-18 18:51:16 · 450 阅读 · 0 评论 -
python基础要点(4)-模块
.模块的命名#模块的文件名就是模块的名字加上.py创建一个模块:test.py使用这个模块:import test.模块的命名空间#给定一个模块名后就只能有一个模块被导入到Python解释器中,所以不同模块间不会出现命名交叉。#即使不同模块间有相同的函数名也不会产生冲突,例:test.add(),test1.add() 不会产生冲突.如何搜索模块(1)当导入转载 2012-12-18 18:48:57 · 406 阅读 · 0 评论 -
python基础(3)-函数
1, 函数的特性(1)在python中没有返回值的函数,返回的是none(2)python中函数可以返回一个值会对象,例如: return 'a',123,[4,5](3)若函数返回多个对象,那么函数就把这些对象当成一个元组返回,(2)实际上返回的是('a',123,[4,5])(4)函数要先定义后使用(5)函数可以作为参数,字典或列表中的元素使用2,创建函数.转载 2012-12-18 18:48:17 · 408 阅读 · 0 评论 -
python基础要点(1)-基本类型
1, 列表1.1 列表特性*和其他语言不同,在内存中的位置和引用关系如下。所以可以通过负数来访问列表成员。其中的N == 序列的长度 == len(sequence)*列表中的元素可以是不同类型的, 例如:[2, 'abc', [2,3,4]]*列表中的某一个元素可以通过下标的偏移量得到,多个元素可以通过切片操作得到。*列表中的成员可以增加,减少,反转等操作。转载 2012-12-18 18:46:03 · 394 阅读 · 0 评论 -
python 中的字符串操作
python 中的字符串操作,注意在python3中print x用print(x)替代。'''1.复制字符串'''sStr1 = 'aaaa'sStr2 = sStr1sStr1 = 'bbbb'print(sStr2) #是复制哦,所以结果是 aaaa'''2.连接字符串'''sStr1 = 'strcat'sStr2 = 'append'转载 2012-12-16 18:40:49 · 394 阅读 · 0 评论 -
开始学习python
值得思考的一些东西有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它做得很复杂以至于找不到明显的缺陷。——C.A.R. Hoare获得人生中的成功需要的专注与坚持不懈多过天才与机会。——C.W. Wendte 在同事的推荐下,开始学习python,这里记录一下学习的过程和心得,算是新的一年的计划吧。原创 2012-12-16 18:26:20 · 617 阅读 · 1 评论 -
关于BOOL的说明
bool原来就是一个数字,因为它有TRUE,和FALSE两个值.>>> True+12>>> isinstance(True,int)True>>> True or FalseTrue>>> type(True)>>> True==1True>>> True is 1False原创 2013-12-30 17:08:43 · 594 阅读 · 0 评论 -
os模块操作目录。
首先要导入模块:import osos.path.split(os.getcwd())[0]得到当前目录的父目录,然后使用os.path.join方法去得到目标文件的地址filepath = os.path.join(os.path.split(os.getcwd())[0], "template\test.xml")os和os.path模块os.listdir(dirna原创 2013-12-29 11:15:10 · 608 阅读 · 0 评论 -
Python实用技巧-成为Pythoner必经之路
前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好? 如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单、优雅; 如果你象我这样,对 Python 有兴趣或并正在学习,我相信下面的技巧并不会让你失望; 如果你已经是一名 Pythoner ,那么很乐于你分享你的经验和技巧。 目录 Python 禅道代码风格: 提转载 2013-12-19 15:42:27 · 533 阅读 · 0 评论 -
map,enumerate,zip,filter
1、并行遍历:zip和map内置的zip函数可以让我们使用for循环来并行使用多个序列。在基本运算中,zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。示例一:L1 = [1,2,3,4]L2 = [5,6,7,8]#要合并这些列表中的元素,可以使用zip来创建一个元组对的列表。与range一样,zip是一个可迭代对象,因此,必须将其原创 2014-01-13 20:26:36 · 704 阅读 · 0 评论