您的位置:首页 > 编程语言 > Python开发

有意思的记录-python

2015-08-28 15:57 627 查看

1.变量

类变量紧接在类名后面定义,相当于java和c++的static变量

实例变量在init里定义,相当于java和c++的普通变量

2.日期

#coding:utf-8
import time
import datetime
#日期格式化,time.strftime(format[, t]),
#输出:2015-08-28 15:50:51
currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
#日期加减,输出:2015-08-27
yesterday = datetime.date.today() - datetime.timedelta(days=1)
print yesterday.strftime("%Y-%m-%d")
#日期字符串转化为时间戳time.strptime(string[, format])
#struct_time格式:time.struct_time(tm_year=2015, tm_mon=3, tm_mday=12, tm_hour=15, tm_min=1, tm_sec=1, tm_wday=3, tm_yday=71, tm_isdst=-1)
#秒数:
timeStruct = time.strptime("2015-03-12 15:01:01", '%Y-%m-%d %H:%M:%S')
#返回秒数:1426143661.0
seconds = time.mktime(timeStruct)
print seconds


3.json

json.dumps(obj)JSON转为字符串
json.loads(str)字符串转为JSON


4.文件读写

queryFile = open('top_query')
for line in queryFile:
print line
queryFile.close()
queryFile = open('top_query', 'w')
queryFile.write("miphone" + "\n")
queryFile.close()


5.字符串编辑距离

编辑距离也称为Levenshtein距离,用于衡量两个字符串的相似度,一个字符串向另一个字符串变化经历的操作(新增/删除/替换字符)次数。python提供官方库python-levenshtein,使用如下。

import Levenshtein
#输出2,abc:b替换为f得afc,删除c得af,两次操作
Levenshtein.distance("abc", "af")
#ratio函数获得小于1的小数,更直观的衡量相似度,1完全相同,0是完全不同
#计算公式是r=(sum - dist) / sum,sum是两字符串长度和,dist为类编辑距离,删除/新增距离依然+1,替换距离+2,r=(5-3)/5=0.4
Levenshtein.ratio("abc","af)
#中文比较,要转为unicode编码,才能获得正确结果
Levenshtein.distance(u"中国",u"北京")
Levenshtein.distance(unicode("中国", "utf-8"), unicode("北京", "utf-8"))
Levenshtein.ratio(unicode("中国", "utf-8"), unicode("北京", "utf-8"))




6.包含元组的list

元素是元组格式的list进行排序和格式化输出

queryList = [("iphone", 1), ("miphone", 10)]
queryList.sort(key=lambda item:item[1], reverse=True)
str = ",".join([k + ":" + str(v) for (k, v) in queryList])


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: