1,glob 模式匹配
import glob
for name in glob.glob('dir/*'):
print(name)
dir/file.txt
dir/file1.txt
dir/file2.txt
2,json
json.dumps(result, indent=2, ensure_ascii=False)
第一个参数是数据,第二个参数为空格,第三个参数为false时,才会输出中文
3,hashcode
1.hashcode是用来查找的,如果你学过数据结构就应该知道,在查找和排序这一章有
例如内存中有这样的位置
0 1 2 3 4 5 6 7
而我有个类,这个类有个字段叫ID,我要把这个类存放在以上8个位置之一,如果不用hashcode而任意存放,那么当查找时就需要到这八个位置里挨个去找,或者用二分法一类的算法。
但如果用hashcode那就会使效率提高很多。
我们这个类中有个字段叫ID,那么我们就定义我们的hashcode为ID%8,然后把我们的类存放在取得得余数那个位置。比如我们的ID为9,9除8的余数为1,那么我们就把该类存在1这个位置,如果ID是13,求得的余数是5,那么我们就把该类放在5这个位置。这样,以后在查找该类时就可以通过ID除 8求余数直接找到存放的位置了。
2.但是如果两个类有相同的hashcode怎么办那(我们假设上面的类的ID不是唯一的),例如9除以8和17除以8的余数都是1,那么这是不是合法的,回答是:可以这样。那么如何判断呢?在这个时候就需要定义 equals了。
也就是说,我们先通过 hashcode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,那么我们就需要再通过 equals 来在这个桶里找到我们要的类。
那么。重写了equals(),为什么还要重写hashCode()呢?
想想,你要在一个桶里找东西,你必须先要找到这个桶啊,你不通过重写hashcode()来找到桶,光重写equals()有什么用啊
4,Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
1,all函数
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
元素除了是 0、空、None、False 外都算 True。
>>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
False
>>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素
False
2,set函数
set() 函数创建一个无序不重复元素的集合,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等,返回新的集合对象
a=['1','2','3','2','2','3']
b=set(a)
print(b) #set(['1', '3', '2'])
str='hello,welcome to China!'
c=set(str)
print(c) #set(['a', ' ', 'c', 'e', 'C', 'h', 'm', 'l', 'o', ',', 'i', '!', 't', 'w', 'n'])
4,if type(rootValue[key]).__name__=="dict"
判断rootValue字典的类型
5,异常处理
#检测的语句
try:
A
#发生异常之后的语句
except BaseException :
B
6,for 的妙用
n = [j for j in range(10) if j <5] #for返回的是j
print(n)
#[0, 1, 2, 3, 4]
7,round
控制float 数据精度,round(2.3334,2)
前为数据,后为保留几位小数
1,all函数
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
元素除了是 0、空、None、False 外都算 True。
>>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
False
>>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素
False
2,set函数
set() 函数创建一个无序不重复元素的集合,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等,返回新的集合对象
a=['1','2','3','2','2','3']
b=set(a)
print(b) #set(['1', '3', '2'])
str='hello,welcome to China!'
c=set(str)
print(c) #set(['a', ' ', 'c', 'e', 'C', 'h', 'm', 'l', 'o', ',', 'i', '!', 't', 'w', 'n'])
4,if type(rootValue[key]).__name__=="dict"
判断rootValue字典的类型
5,异常处理
#检测的语句
try:
A
#发生异常之后的语句
except BaseException :
B
6,for 的妙用
n = [j for j in range(10) if j <5] #for返回的是j
print(n)
#[0, 1, 2, 3, 4]
7,round
控制float 数据精度,round(2.3334,2)
前为数据,后为保留几位小数
1,表示无穷大与无穷小
float('inf')和float('-inf')
2,列表的pop用法,将列表元素弹出,可指定索引
list1 = ['Google', 'Runoob', 'Taobao']
list1.pop()
print ("列表现在为 : ", list1)
#列表现在为 : ['Google', 'Runoob']
list1.pop(1)
print ("列表现在为 : ", list1)
#列表现在为 : ['Google']
2,列表末尾追加list.extend
aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print "Extended List : ", aList ;
#Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
3,eval函数
将字符串进行多种转换,函数,字典,列表等
envl('service.login')()
a ="[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a)) #str
b =eval(a)
print(type(b))
print(b) #list
4,双百分号的用法
file =open('%s_%s' % (name_list[i], date_list[i]), 'a', encoding='utf-8')
格式化三种方法 https://www.cnblogs.com/xioawu-blog/p/12410759.html
5,判断文件是否存在
if not os.path.exists('test.csv'):
如果test.csv
6,获取文件名
path = '/Users/beazley/Data/data.csv'
os.path.basename(path)
7,#ceil() 函数返回比当前数字大的整数
math.ceil()
8,isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()
if (isinstance(algo, (LogisticRegression,
KNeighborsClassifier,
GaussianNB,
DecisionTreeClassifier,
RandomForestClassifier,
GradientBoostingClassifier))):
1,关于最近邻居算法,如果两个邻居k+1和k,距离相同,但标签不同,结果取决于数据集的排序
2,列表元素选择
a = [[2, 3], [5, 4], [9, 6], [4, 7], [8, 1], [7, 2]]
a[:, 0],第一个逗号前的:表示选择多少个列表,如a[:, 0]为选择所有列表的第一个元素,a[1:, 0],为选择第一个列表之后的列表,逗号后的数字为选择列表中的第几个元素
3,字典的get方法
countLabel = {}
countLabel[label] = countLabel.get(label, 0) +1
# 字典的get方法,第一个参数为键值,找到则返回对应的value值,没找到则返回第二个参数
4,字典排序
countLabel_sorted =sorted(countLabel.items(), key=operator.itemgetter(1),reverse=True)
# operator.itemgetter(1)为value,operator.itemgetter(0)为key
5,计算集合的欧氏距离
from scipy.spatial.distanceimport pdist
Y = pdist(X, 'euclidean')
计算矩阵X样本之间(m*n)的欧氏距离(2-norm) ,返回值为 Y (m*m)为压缩距离元组或矩阵。第二个参数默认为欧氏距离。
6,zip函数
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
colors = ['r', 'y', 'b']
print(list(zip(range(3), colors)))
# [(0, 'r'), (1, 'y'), (2, 'b')]
7,re
findall,comple,sub,split
findall https://www.cnblogs.com/syw20170419/p/9749809.html
sub https://blog.csdn.net/darkman_ex/article/details/80975764
split https://blog.csdn.net/Darkman_EX/article/details/80973656
sentence_delimiters = re.compile(u'[。?!;!?]')
sentences =[i for i in sentence_delimiters.split(x['content_cut']) if i != '']
re.findall(r'\d+',city_data) 将字符串中数字拿出来,返回字符串
正则匹配规则(数字)
8,join用法,连接字符串
data ='-'.join(data)
9,assert
https://www.runoob.com/python3/python3-assert.html
10,next
next() 返回迭代器的下一个项目。
next() 函数要和生成迭代器的iter() 函数一起使用。
11,tqdm 显示进度条
for index in tqdm(df.index):
11,string 模块
https://blog.csdn.net/kongsuhongbaby/article/details/83181768