1,字典的输出
print ( " %(name)s,%(age)d " % person)
import string
person = { ' name ' : ' james ' , ' age ' : 22 }
t = string.Template( " $nameis$age " )
print (t.substitute(person))
2,python模块的安装
假设有下述MyClass模块,
def __init__ (self,name,age):
self.name = name
self.age = age
def printInfo(self):
print " %s,%d " % (self.name,self.age)
if __name__ == ' __main__ ' :
c = MyClass()
c.printInfo()
我们可以使用distutils来为其制作安装包,首先需要创建一个名为setup.py的安装脚本,脚本内容如下:
setup(name = ' MyClass ' ,
version = ' 1.0 ' ,
py_modules = [ ' MyClass ' ],
)
然后执行下述命令:
这样就产生了MANIFEST和dist目录,后者包含了MyClass-1.0.tar.gz。我们可以将MyClass-1.0.tar.gz置于了另一个linux系统来安装此模块,
首先解压缩:
tarxvfMyClass- 1.0 . tar
解压完成后,可以看到此压缩包中包含了MyClass.py,setup.py,PKG-INFO三个文件
然后用下述命令来完成安装:
3,list的remove方法只是删除找到的第一个元素,并不是删除全部
4,若一个truple只包含一个元素,则应当在此元素后有一个逗号,例如 x = (True,)
5,print函数可以用来进行io重定向,
print ( ' hello ' , ' world ' ,sep = ' , ' ,file = f)
f.close()
6,python中的True,False很有趣,比如 0 in[True,False] 会返回什么值呢?这篇文章从python源码的角度对此进行了分析,非常深刻
7,List Comprehension
[num * 2 for num in a]
我们从右往左看,首先对a进行遍历,每次将一个元素赋给变量num,然后将num*2的值添加到返回列表中,甚至还可以这样:
[file for file in glob.glob(‘ * .py’) if os.stat(file).st_size > 6000 ]
这就只返回搜索到的py文件中大小大于6000的文件
8,lambda函数:
def split_fully(path):
parent_path,name = os.path.split(path)
if name == '' :
return (parent_path,)
else :
return split_fully(parent_path) + (name,)
def filterRule(num):
return (num % 2 == 0);
def NormalFilter():
arr = [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
result = filter(filterRule,arr)
print result
def FilterByLambda():
arr = [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
result = filter( lambda x:x % 2 == 0,arr)
print result
def FilterByLambda_2():
arr = [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
ruleFunc = lambda x:x % 2 == 0
result = filter(ruleFunc,arr)
print result
def testMap():
arr = [ 1 , 2 , 3 , 4 , 5 , 6 ]
result = map( lambda x: " thenumis%d " % x,arr)
print result
def testMapWithList():
arr = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ],[ 7 , 8 , 9 ]]
result = map( lambda list:[list[ 1 ],list[0],list[ 2 ]],arr)
print result
if __name__ == " __main__ " :
path = split_fully( " /home/phinecos " )
print path
NormalFilter()
FilterByLambda()
FilterByLambda_2()
testMap()
testMapWithList()
有一点值得注意,在python3.1中map和filter函数返回的是一个iterator,但以前的版本返回的是一个list,因此,若使用python3.1,则输出的语句应该改成: