每日学习笔记(4)
1,字典的输出
print("%(name)s,%(age)d" % person)
import string
person = {'name':'james','age':22}
t = string.Template("$name is $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系统来安装此模块,
首先解压缩:
tar xvf MyClass-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: "the num is %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,则输出的语句应该改成:
作者:洞庭散人
出处:http://phinecos.cnblogs.com/
posted on 2010-05-09 23:04 Phinecos(洞庭散人) 阅读(799) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2009-05-09 BMP文件的读取
2008-05-09 C++ Exercises(十二)
2007-05-09 C++ Exercises(四)