分享

Python字符串

 猪一样迷人 2019-12-14

日常使用python经常要对文本进行处理,无论是爬虫的数据解析,还是大数据的文本清洗,还是普通文件的处理,都是要用到字符串.。Python对字符串的处理内置了很多高效的函数,非常方便功能很强大。下面是我总结的常用的7招,有了这几招就能轻松应对字符串处理。

整理到头皮发麻~改天做个小测试,看看有没有人在看!

1.字符串的连接和合并

连接和合并

1)相加 >>>两个字符串可以很方便的通过' '连接起来

str1 = 'hello'
str2 = 'forchange'
new_str = str1 str2
print(new_str)
>>>helloforchange

2)合并>>>用join方法

url = ['www','pypypy','cn']
print('.'.join(url))
>>>www.pypypy.cn
# 注意:这里的太多'.'一定要加上哈,你不加就是语法错误,固定格式。有能力的同学可以看一下python的官方文档~没有也没事,毕竟我也没看完。

2.字符串的切片和相乘

1)相乘>>>比如写代码的时候要分隔符,用python很容易实现

line='#'*30
print(line)
>>##############################

2)切片

str = 'fengbian is very good'
print(str[0:10]) #表示取第一个到第10个的字符串
>>>fengbian i #注意:空格在字符串也算一个字符
# 上面肯定又有同学混乱了,不是左取右不取嘛,怎么第10位也取了。大哥,人家偏移量(下标)是从0开始的嘛,那我们习惯数数的时候是从1开始嘛,好不好?头给你锤歪~

3.字符串的分割

1)普通的分割,用split,分割和切片不同哈。

split只能做非常简单的分割,而且不支持多个分隔

print(phone.split('-'))
>>['400', '800', '800', '1234']

2)复杂的分割

r表示不转义,分隔符可以是;或者,

空格后面跟0个多个额外的空格,然后按照这个模式去分割

line = 'learn programme; I ,like, fengbian'
import re
print(re.split(r'[;,s]\s*',line))
>>>['learn programme', 'I ', 'like', 'fengbian']

好了,肯定又有同学要问我这是啥啊,我看不懂~~~我也没看懂,哈哈哈哈哈哈哈哈,开个玩笑

注意看,line一开始是字符串,里面的;,两个符号都要用英文,在写代码的时候,一般遇到符号自动切成英文输入法,不然到后面很多语法你会发现,明明照写了,为嘛还是不能实现出别人的效果,我刚刚就犯了这个错误,在电脑前抓耳饶腮了半个小时,差点儿砸电脑了~

说道哪了,回正题~re.split(r'[;,s]\s*',line ,这个属于固定格式,line不算哈,那个是变量名。

你也看到了,打印出来的结果是一个列表,里面的每个元素都是字符串,这个没毛病吧。那么这个玩意到底会在哪个场景用到,以后做数据清洗的时候会用到~

4.字符串的开头和结尾的处理

比方我们要查一个文件的名字是以什么开头或者什么结尾

filename='trace.h'
print(filename.endswith('h'))
>>True
print(filename.startswith('trace'))
>>True

5.字符串的查找和匹配

1)一般查找

在长的字符串里面查找子字符串,会返回子字符串所在位置的索引, 若找不到返回-1

title = 'I like you, fengbian,I\'m a better person because of you'
print(title.find('you'))
>>>8

哥,数的时候从0开始数,下标是从0开始的啊,哦对了,空格也要数~疯狂提醒

2)复杂的匹配

mybirthday = '1996/05/28'
import re
if re.match(r'\d /\d /\d ',mybithday):
print('ok,match')
esle:
print('ko not match')
>>>ok,match

这个我还没想到很好的比喻给你们解释,等想到了,我在提醒你们来看~偷懒!

6.字符串的替换

1)普通的替换

用replace就可以

text ='I like you, fengbian,I\'m a better person because of you'
print(text.replace('like','love'))
>>>I love you, fengbian,I'm a better person because of you

2)复杂的替换

若要处理复杂的或者多个的替换,需要用到re模块的sub函数

import re
myinfo = 'height 173,weight 120'
print(re.sub(r'\d ','180',myinfo))
>>>height 180,weight  180

这个也留着,以后一起解释~


7.字符串中去掉一些字符

1)去除空格

对文本处理的时候比如从文件中读取一行,然后需要去除每一行的两侧的空格,table或者是换行符

line='  Congratulations, you guessed it.    '
print(line.strip())
>>Congratulations, you guessed it.

注意:字符串内部的空格不能去掉,若要去掉需要用re模块

2)复杂的文本清理可以利用str.translate,

先构建一个转换表,table是一个翻译表,表示把't''o'转成大写的'T' 'O',

然后在old_str里面去掉'12345',然后剩下的字符串再经过table翻译

import string
instr = 'to'
outstr = 'TO'
old_str = 'hello woold,welcome to use python.123456'
table = old_str.maketrans(instr,outstr)
new_str = old_str.translate(table)
print(new_str)
>>>hellO wOOld,welcOme TO use pyThOn.123456

注释:这一章节还有些不完整~后续更新我会提醒各位

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多