好用的
zip:(顺带df.iterrows())
for x,y in zip(self.df_train.iterrows(), self.df_test.iterrows()):#取出每一行的row。个人习惯 ij是index,xy是val
corpus.append(str(x[1]['title'])+';'+str(x[1]['content']))#0是index,1是row
corpus.append(str(y[1]['title'])+';'+str(y[1]['content']))
enumerate()多个index
注释上的问题
- python2.x 需要加上#coding=utf-8
运算符
- 除法"/"是得到的是浮点型,如果得到的结果是整数x,也会有x.0;而它的"//"才是C里的"/",不过3.5//2==1.0
- **是^
- 支持连续比较,试了一下 4>0<2等价于4>0 and 0<2,so true
语法结构
- pass占位符,有时用在if后没想好写啥,但是为了防止后面继续写的时候,前面if后面没东西而报错
- 类似c语言的格式化方法:print("我今年%d岁"%age)
字符串与列表
- 结果:
- 结果:[1, 2, 1, 3];结果:你1我2他3你1我2他3 [1, 3, 1, 3]
- 结果:True
- 结果:
- str.find("xxx")返回第一个序号
- .lower()和upper()可以直接将str变换大小写
- str.replace(a,b)把str里的a都换成b,不过这并非inplace操作
- str.strip()删除首尾的指定字符,不写就是空格和tab
循环
- 可以这么写结果:
- 倒序
- 对字典的遍历中,eg:如for x in dic的x是每个key;
- 或或得到tuple
- 练习:乘法口诀
- for i ,j in zip(L1, L2) 就是让i遍历L1,j遍历L2
- enumerate()函数:除了遍历本身,还多一个index,很好用
函数
- 参数组传参
- 打包return
递归
- python里不能修改全局变量,
文件操作
- readxx后前面的东西被清空
- OS模块
Object Oriented
-
class stu(): sid=0#类的属性,下面是实例的属性 def __init__(self, name='xxx', sex='boy'): #构造函数,在这里声明当前实例的属性 self.__name = name #加两个下划线就是类内私有属性,外部不能获取 self.sex=sex #self表示当前类本身,相当于是类里的全局变量 def set_name(self, name): self.__name = name def get_name(self): return self.__name s=stu('你',"girl") print(s.get_name(), s.sex) s.set_name('我') print(s.get_name(), s.sex) stu.sid#不报错 s.__name #会报错
- 继承:结果:。要学习的是super这里就是直接调用父类的构造函数,从而不需要在子类再init,注意几处的写法。