python 基本语法

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

12, 统一转换日期格式dateutil.parser.parse

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,362评论 0 5
  • Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows...
    我想起个好名字阅读 294评论 0 1
  • 系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在...
    sky_yang阅读 266评论 0 0
  • 文件读写文件读写部分,python有一个基本的内置文件读取函数openopen(filename, mode)其中...
    zhile_doing阅读 372评论 0 0
  • 文/故若初 “万物静观皆自得,四时佳兴与人同”是汪曾祺所欣赏的境界。“随遇而安”是他的生活态度。他是现当代小说家、...
    故若初阅读 1,076评论 5 8