1. 切片
翻转字符串顺序,使用切片str[::-1]
a="HelloWorld!"print(a[::-1])"""!dlroWolleH"""
(资料图片)
切片完整的写法 str[start: end: step]
start 字符串开始的索引值
end 字符串结束的索引值
step 间隔步长,默认为1。
一般切片时,只使用start和end, 不设置step。如果step为-1,即翻转顺序倒着切片。
2. not运算符a=[]print(nota)"""True"""
not是Python的内置关键词,一种 逻辑非的运算符。在上面的代码中, 空列表[]是一种类似False的效果, 而 not []即为真。类似的还有空字符串、空集合等空数据。
3. F-stringsfirst_name="John"age=19print(f"Hi,I"m{first_name}andI"m{age}yearsold!")"""Hi,I"mJohnandI"m19yearsold!"""
自3.6以来,Python新增了字符串的格式化方法,在字符串内可以调用环境中的变量。
实现上面代码的功能,还可以用字符串的format方法
first_name="John"age=19print("Hi,I"m{}andI"m{}yearsold!".format(first_name,age))"""Hi,I"mJohnandI"m19yearsold!"""
3.8以后,Python的f-string新增了如下效果
x=10y=20print(f"{x=},{y=}")"""x=10,y=20"""4. print函数4.1 end参数
a=["english","french","spanish","german","twi"]forlanguageina:print(language,end="")"""englishfrenchspanishgermantwi"""
print函数end用于设定打印内容结尾的符号,默认换行符\n,所以在for循环使用print时候会看到内容是逐行显示的。
72. sep参数print函数默认sep=" ",通过改变sep,打印的结果也会发生变化。
day="04"month="10"year="2022"print(day,month,year)print(day,month,year,sep="")print(day,month,year,sep="")print(day,month,year,sep=".")"""041020220410202204/10/202204.10.2022"""5. 合并字典
a={"a":1,"b":2}b={"c":3,"d":4}a_and_b=a|bprint(a_and_b)"""{"a":1,"b":2,"c":3,"d":4}"""
3.9之后, python支持字典的 或|来合并多个字典。
6. 条件语句condition=Trueifcondition:name="John"else:name="Doe"print(name)"""John"""
如果条件语句需要写在一行内,可以改写成
condition=Truename="John"ifconditionelse"Doe"print(name)"""John"""7. 下划线_
下划线有以下三个常见的用处
调用最近(上一次)的运行结果
忽略不需要操作的值
定义变量名,避免与内置关键词冲突
下划线间隔的数字
7.1 调用结果>>>print(_)Traceback(mostrecentcalllast):File"",line1,in >>>1+23>>>print(_)3
_可以调用最近上一次 操作1+1的运行 结果3。
7.2 忽略不需要的值除此之外, 下划线 _还可用在for循环中,忽略不需要的值。
for_inrange(100):print("Theindexdoesn"tmatter")"""Theindexdoesn"tmatterTheindexdoesn"tmatter..."""7.3 定义变量名,避免与内置关键词冲突
#避免与关键词list、global冲突list_=[0,1,2,3,4]global_="Hithere"7.4 下划线数字
为了增加数字的可阅读性,可以在数字中加入下划线_
number=1_500_000print(type(number))print(number)"""15000008. setdefault"""
使用字典做词频统计时,常见实现算法
检查该关键词是否存在于字典中
如果存在, 该关键词词频加1
如果不存在,该关键词词频设为1
importpprinttext="""It"sthefirstofApril.It"sstillcoldintheUK.ButI"mgoingtothemuseumsoitshouldbeawonderfulday"""counts={}forwordintext.split():ifwordincounts:counts[word]+=1else:counts[word]=1pprint.pprint(counts)"""{"April.":1,"But":1,"I"m":1,"It"s":2,"UK.":1,"a":1,"be":1,"cold":1,"day":1,"first":1,"going":1,"in":1,"it":1,"museum":1,"of":1,"should":1,"so":1,"still":1,"the":3,"to":1,"wonderful":1}"“”
实际上,使用字典的setdefault方法,可以起到ifelse判断的作用。
counts={}forwordintext.split():counts.setdefault(word,0)counts[word]+=19. lambda函数
lambda函数更简洁,可以在一行代码内定义一个简洁的函数。
defsquare(num:int)->int:returnnum**2print(f"Functioncall:{square(4)}")"""Functioncall:16"""square_lambda=lambdax:x**2print(f"Lambdafunction:{square_lambda(4)}")"""Lambdafunctional:16"""10. Try-Except
写代码的时候,经常会遇到报错,例如分母为0
defget_ration(x:int,y:int)->int:ratio=x/yratio=x/yreturnratioprint(get_ratio(x=400,y=0))"""---------------------------------------------------------------------------NameErrorTraceback(mostrecentcalllast)in 4returnratio5---->6print(get_ratio(x=400,y=0))NameError:name"get_ratio"isnotdefined"""
可以使用try except包裹住 "小错误",并对可能出错的地方进行微调,来忽略错误。
defget_ration(x:int,y:int)->int:try:ratio=x/yexcept:ZeroDivisionError:y=y+1ratio=x/yreturnratioprint(get_ratio(x=400,y=0))"""400.0"""11. Args&Kwargs
defsome_function(*args,**kwargs):print(f"Args:{args}")print(f"Kwargs:{kwargs}")some_function(1,2,3,a=4,b=5,c=6)"""Args:(1,2,3)Kwargs:{"a":4,"b":5,"c":6}"""
使用*arg可以让函数传入任意多个参数,而**kwarg可以让函数传入任意多个键值对。
12. 列表推导式even_numbers=[]forxinrange(10):#%取余数ifx%2==0andx!=0:even_numbers.append(x)print(even_numbers)"""[2,4,6,8]"""
实现同样功能,列表推导式只需要一行
even_numbers=[xforxinrange(10)ifx%2==0andx!=0]print(even_numbers)"""[2,4,6,8]"""
精选文章
管理世界 | 使用文本分析词构建并测量短视主义
管理世界 | 使用 「经营讨论与分析」 测量「企业数字化指标」
支持开票 | Python实证指标构建与文本分析
PNAS | 文本网络分析&文化桥梁Python代码实现
PNAS | 使用语义距离测量一个人的「创新力(发散思维)得分」
MS | 使用网络算法识别『创新的颠覆性与否』
金融研究 | 文本相似度计算与可视化
金融研究 | 使用Python构建「关键审计事项信息含量」
视频分享 | 文本分析在经管研究中的应用
转载 | 金融学文本大数据挖掘方法与研究进展
文本分析 |「MD&A信息含量」指标构建代码实现
可视化 | 绘制《三体》人物关系网络图
长期征稿 | 欢迎各位前来投稿
17G数据集| 深交所企业社会责任报告
70G数据集| 上市公司定期报告数据集
27G数据集 | 使用Python对27G招股说明书进行文本分析
数据集 | 585w企业工商注册信息
数据集 | 90w条中国上市「公司高管数据」
可视化 | 绘制《三体》人物关系网络图
认知的测量 | 向量距离vs语义投影
Asent库 | 英文文本数据情感分析
tomotopy | 速度最快的LDA主题模型
100min视频 | Python文本分析与会计
安装python包出现报错:Microsoft Visual 14.0 or greater is required. 怎么办?
如何正确读入文本数据不乱码(解决文本乱码问题)
Faker库 | 生成实验数据
使用R语言绘制文本数据情感历时趋势图
NiceGUI库 | 简单易懂的Web GUI开发包;可开发数据标注工具、心理学实验工具等
CheatSheet | Python文本数据处理速查表
pandas | 使用 df.query 字符串表达式进行数据筛选