第六章 字符串
第6章 字符串
一、字符编码格式
最早字符串编码:ASCII
GB2312-1980:中国定制的中文编码,1个字节兼容ASCII,2个字节表示中文
GBK:是GB2312-1980的扩充
CP936:是微软在GBK上扩充
UTF8:1个字节兼容ASCII,3个字节表示汉字
二、转义字符与原始字符串
转义字符 | 含义 | 转义字符 | 含义 |
---|---|---|---|
\b | 退格 | \\ | 斜线 |
\f | 换页符 | \' | 单引号 |
\n | 换行符 | \" | 双引号 |
\r | 回车 | \ooo | 3位8进制字符 |
\t | 水平制表符 | \xhh | 2位16进制字符 |
\v | 垂直制表符 | \uhhhh | 4位16进制字符 |
三、常用方法和操作
序号 | 功能 | 方法明细 | 举例 |
---|---|---|---|
1 | 格式化 | format() | |
2 | 编码、解码 | encode(),decode() | |
3 | 查询、统计 | find(),查询首次出现位置 rfind(),查询最后一次出现位置 index(),查询最后一次出现位置 rindex(),查询首次出现位置 count()查询出现次数 |
|
4 | 分列 | split(),从左往右根据分隔符进行分割 rsplit()从右往左根据分隔符进行分割 |
|
5 | 连接 | join() | |
6 | 大小写转换 | lower(),小写 upper(),大写 capitalize(),字符串首字母大写 title(),单词首字母大写 swapcase()大小写互换 |
|
7 | 替换 | replace(), maketrans() translate() |
|
8 | 删除 | strip()两端删除 rstrip()右端删除 lstrip()左端删除 |
|
9 | 指定字符开始或结尾 | startswith() endswith() |
|
10 | 是否为字母,数字等 | isalnum() isalpha() isdigit() isspace() isupper() islower() |
|
11 | 排版 | center() ljust() rjust() |
|
12 | 运算 | +拼接 *复制多份 in判断是否存在 %格式化 |
|
13 | 内置函数 | ord()查看单字符Unicode编码 chr()查看Unicode编码对应的字符 |
|
14 | 切片 | [::-1]翻转文字 [:8]前8个字符 |
|
15 | 压缩与解压 | zlib.compress(text)压缩 zlib.decompress(y).decode()解压 |
四、拼音与分词
>>> import jieba
>>> text="我是一个优秀的工程师"
>>> jieba.lcut(text)
['我','是','一个','优秀','的','工程师']
1、分词:
扩展库jieba和snownlp支持中英文分词
jieba.lcut(text)
snownlp.SnowNLP(text).words
2、拼音处理
扩展库pypinyin支持汉语到拼音的转换
pypinyin.lazy_pinyin(text)
pypinyin.lazy_pinyin(text,1)带声调
五、应用
统计一段文字出现次数最多的6个词
from collections import Counter
from jieba import lcut
text='''红黄蓝绿,绿黄蓝红,蓝黄绿红,红绿蓝黄。六只小刺猬,绕着细绳转,转啊转,绕啊绕,刺猬疯了绕不停。三十三只燕子,三三两两排成行,翅膀一扇,飞向远方。七只鹅,高高盘旋在蓝天,呱呱呱,鹅儿飞翔快乐又安康。'''
words=lcut(text)
fre=Counter(words)
print(fre.most_common(6))
[(',', 13), ('。', 4), ('绕', 4), ('转', 3), ('绿', 2), ('刺猬', 2)]