有意思的记录-python

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])

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值