Python Note

1.解决一些乱码问题
Import sys
Import re
reload(sys)
sys.setdefaultencoding('utf8')#line1to5istosetutf-8inordertoavoidingUnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe7inposition3:ordinalnotinrange(128)

2.
from collections import defaultdict这个包相当于 dict 但是他在添加 key 的时候不用判断是否已经存在,可以直接写 d[key]+=1,据说效率也会高(童靴亲测,效率爆高)
3.
pattern = re.compile('[^a-z0-9]')python 正则 import re
可以用pattern.search(str)pattern.match(str)
4.
for parent, folds, files in os.walk("ICML/ICML"):用这个循环可以递归的访问某个文件夹的所有文件
5.
with open(os.path.join("result", f_name), 'w') as fout:
读文件时用这个with as可以自动打开关闭文件对象
6.
for i,w in enumerate(words):
用这个遍历 words 里的元素,其中 i 是位置 w 是元素
7.
新建一个空的 set 可以d=set() 两个 set 的并可以写作d | d2
8(巨坑一点)
list.sort()不返回任何值,排序后的结果还在 list 中,自定义的话可以写 cmp 函数
def cmp(p1,p2):
str1 = p1.pattern
str2 = p2.pattern
if len(str1)>len(str2):
return -1
elif len(str1)<len(str2):
return 1
else:
return 0

这是按照 len 从大到小的顺序排序的
9.
str.strip()可以去除 str 首尾的空白部分
10.关于正则表达式的一点
.*([a-z])\1ing
()是捕获组
\1是取第一个(第几个是看第几个括号)
这个正则的意思是两个相同的字母 e.g 可以匹配 swimming 不能匹配 swimxing
11.
isinstance(newword,list)判断是否是某种类型
12.
使用 numpy 时,如需算 log 请用np.log10()等,不要用np.log(balabala,10)
13.
多用这种表达式来替代循环
word=[w for w in tokens if not w in stopWord]
14.
numpy 算矩阵乘法,如果用a*b则是对应元素相乘,矩阵乘法要用dot(a,b)
15.编码问题
1>python中的编码都是unicode
2>如果你读的文件是gbk,读入的时候需要成unicode
xx.decode("gbk")
3>unicode编码的中文是可以直接输出的,如果你用[w for w in list]print list则不会输出中文,估计是[]的问题。
16.字符串前面+r
在打开文件的时候open(r’c:….’)
加r和不加”r是有区别的
‘r’是防止字符转义的 如果路径中出现’\t’的话 不加r的话\t就会被转义 而加了’r’之后’\t’就能保留原有的样子
另外;字符串赋值的时候 前面加’r’可以防止字符串在时候的时候不被转义 原理是在转义字符前加’\’
注:摘抄自http://blog.csdn.net/chenzy945/article/details/10235661 感谢原博主

ps:欢迎交流,随缘更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值