'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>>文件: 字符串处理.py
>>作者: liu yang
>>邮箱: liuyang0001@outlook.com
>>博客: www.cnblogs.com/liu66blog ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #!/usr/bin/env python
# -*- coding: utf-8 -*- import sys, os # 1.字符串的连接和合并
# 相加 //两个字符串可以很方便的通过'+'连接起来
str1='123'
str2='456'
str3=str1+str2
print(str3)
# -----------输出----------------------
# 123456
# ------------------------------------ # 合并//用join方法
url=['www','cnblog','com/liu66blog']
print('.'.join(url))
# -----------输出----------------------
# www.cnblog.com/liu66blog
# ------------------------------------ # 2.字符串的切片和相乘
# 相乘//比如写代码的时候要分隔符,用python很容易实现
Separator='*'*30
print(Separator)
# -----------输出----------------------
# ******************************
# ------------------------------------ # 切片操作
url='www.cnblogs.com/liu66blog'
# 取下标0-15个字符
print(url[0:16])
# 取下标16-最后一个
print(url[16:])
# 取倒数第四个到最后
print(url[-4:])
# 复制字符串
print(url[::])
# -----------输出----------------------
# www.cnblogs.com/
# liu66blog
# blog
# www.cnblogs.com/liu66blog
# ------------------------------------ # 3.字符串的分割
# 普通的分割,用split
# split只能做非常简单的分割,而且不支持多个分隔
url='www.cnblogs.com/liu66blog'
url_list=url.split('.')
print(url_list)
# -----------输出----------------------
# ['www', 'cnblogs', 'com/liu66blog']
# ------------------------------------ # 复杂的分割
# r表示不转义,分隔符可以是;或者,或者/,或者空格后面跟0个多个额外的空格,然后按照这个模式去分割
url='www.cnblogs.com/liu66blog'
import re
url_list=re.split(r'[.;/]\s*',url)
print(url_list)
# -----------输出----------------------
# ['www', 'cnblogs', 'com', 'liu66blog']
# ------------------------------------ # 4.字符串的开头和结尾的处理
# 比方我们要查一个名字是以什么开头或者什么结尾
url='www.cnblogs.com/liu66blog'
result=url.endswith('blog')
print(result)
result=url.startswith('ww.')
print(result)
# -----------输出----------------------
# True
# False
# ------------------------------------ # 5.字符串的查找和匹配
# 一般查找
# 我们可以很方便的在长的字符串里面查找子字符串,会返回子字符串所在位置的索引, 若找不到返回-1
url='www.cnblogs.com/liu66blog'
result=url.find('liu66')
print(result)
result=url.find('liuyang')
print(result)
# -----------输出----------------------
# 16
# -1
# ------------------------------------ # 复杂查找
data_str='2018/2/22'
result=re.match(r'\d+/\d+/\d+',data_str)
if result:
print('ok,存在')
# -----------输出----------------------
# ok,存在
# ------------------------------------ # 6.字符串的替换
# 普通的替换//用replace就可以
url='www.cnblogs.com/liu66blog'
url_new=url.replace('www.','')
print(url_new)
# -----------输出----------------------
# cnblogs.com/liu66blog
# ------------------------------------ # 复杂的替换 利用re.sub函数
url='www.cnblogs.com/liu66blog'
url_new=re.sub(r'\d\d','00',url)
print(url_new)
# -----------输出----------------------
# cnblogs.com/liu00blog
# ------------------------------------ # 7.字符串中去掉一些字符
# 去除空格//对文本处理的时候比如从文件中读取一行,然后需要去除每一行的两侧的空格,table或者是换行符
url=' www.cnblogs.com/liu66blog '
url_new=url.strip()
print(url_new) # 复杂的文本清理,可以利用str.translate,
# 先构建一个转换表,table是一个翻译表,表示把'w'转成大写的'W',
# 然后在old_str里面去掉'liu66',然后剩下的字符串再经过table 翻译
# Python3.4已经没有string.maketrans()了,取而代之的是内建函数:
# bytearray.maketrans()、bytes.maketrans()、str.maketrans()
url='www.cnblogs.com/liu66blog' # 创建翻译表
instr='w'
outstr='W'
table=str.maketrans(instr,outstr) url_new=url.translate(table)
print(url_new)
# -----------输出----------------------
# WWW.cnblogs.com/liu66blog
# ------------------------------------ # 8.找最长的单词
txt='Python is a programming language that lets you work more quickly and integrate your systems more effectively. ' \
'You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs. ' \
'Learn more about Python..'
# 使用空格分隔
txt_list=txt.split(' ')
# 使用sorted()函数按照单词长度排序
txt_list_new=sorted(txt_list,key=lambda x:len(x),reverse=True)
# 定义一个空列表,存储最长的
longest_word=[]
# 判断后面的单词长度
for i,word in enumerate(txt_list_new):
if len(txt_list_new[i])<len(txt_list_new[0]):
break
else:
longest_word.append(txt_list_new[i])
print(longest_word)
# -----------输出----------------------
# ['effectively.', 'productivity']
# ------------------------------------ # 9.找出指定长度的单词
len_4_word=filter(lambda x:5>len(x)>=4,txt_list)
# 注意python3 filter返回不再是列表 需要自己转换!!
len_4_word_list=list(len_4_word)
# 转换成去重元祖
len_4_word_tuple=tuple(set(len_4_word_list))
print(len_4_word_list)
print(len_4_word_tuple)
# -----------输出----------------------
# ['that', 'lets', 'work', 'more', 'your', 'more', 'more']
# ('your', 'more', 'lets', 'that', 'work')
# ------------------------------------ # 10.使用最频繁的单词
from collections import Counter
# most_common(x) x代表列举的个数
print(Counter(txt_list).most_common(6))
# -----------输出----------------------
# [('more', 3), ('and', 3), ('Python', 2), ('is', 1), ('a', 1), ('programming', 1)]
# ------------------------------------ # 11.列出所有大写的单词
title_words_list=[]
for i in txt_list:
if i.istitle():
title_words_list.append(i)
# 得到去重字典
title_words_dict=set(title_words_list)
print(title_words_list)
print(title_words_dict)
# -----------输出----------------------
# ['Python', 'You', 'Python', 'Learn', 'Python..']
# {'Python..', 'Learn', 'Python', 'You'}
# ------------------------------------ # 12.未完待续...

[Python Study Notes]字符串处理技巧(持续更新)的更多相关文章

  1. [Python Study Notes]字符串操作

    字符串操作 a.字符串格式化输出 name = "liu" print "i am %s " % name     #输出: i am liu   PS: 字符 ...

  2. fastadmin 后台管理框架使用技巧(持续更新中)

    fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...

  3. PLSQL Developer 11 使用技巧(持续更新)

    PLSQL Developer 11 使用技巧 (持续更新) 目录(?)[-] 首先是我的颜色配置 常用快捷键 提升PLSQL编程效率 按空格自动替换 关闭Window窗口 PLSQL 实用技巧 TI ...

  4. 【Python】【学习笔记】持续更新

    调用模块的两种方式: #方式1 from decimal import Decimal Decimal('1.00') #方式2 import decimal decimal.Decimal('1.0 ...

  5. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

  6. [Python Study Notes]CS架构远程访问获取信息--Client端v2.0

    更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 效果图: '''''''''''''''''''''' ...

  7. [Python Study Notes]CS架构远程访问获取信息--Client端v1.0

    更新内容: 1.添加entry栏默认ip和port口 2.修正退出功能 3.添加退出自动关闭窗口功能 4.优化cpu显示为固定保留两位小数 '''''''''''''''''''''''''''''' ...

  8. The Python Challenge 谜题全解(持续更新)

    Python Challenge(0-2) The Python Challengehttp://www.pythonchallenge.com/ 是个很有意思的网站,可以磨练使用python的技巧, ...

  9. 个人在 laravel 开发中使用到的一些技巧(持续更新)

    1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...

随机推荐

  1. dedecms系统后台登陆提示用户名密码不存在

    dedecms最近被曝有非常多的安全漏洞,最近有些用户反应后台管理员账号密码没有修改但无法正常登陆,提示用户名不存在,经研究发现是程序漏洞管理员被直接篡改,解决方案如下. 工具/原料 dedecms ...

  2. 注解Responsebody RequestBody RequestMapping

    编写代码时候很容易遗漏注解,尤其比较重要的注解,调试很久也找不到原因,在处理页面请求异常时,如果后台正常,就是发现没有把想要的对象传到页面就注意下看注解是否缺失?例如:/** * @Author gj ...

  3. Reflection and array

    java.lang.Reflect.Array类提供了动态创建和访问数组元素的各种静态方法. package com.sunchao.reflection; import java.lang.refl ...

  4. linux tcp重传多会导致软中断在各个核很不均匀么?

    网络不稳定,会导致某些核的软中断很高么?那么,下面我们来分析下这个论断的准确性. 环境描述: 网卡软中断进行了绑核.设备具备80个核,960个网卡中断,没开启bbr,全部是tcp呼叫. # cat / ...

  5. 使用SQL 提示优化sql

    use index 在查询语句中表名的后面,添加use index来提供希望mysql去参考的索引列表,就可以让mysql不再考虑其他可用的索引 explain select * from renta ...

  6. python_开发规范

    对于python有哪些开发规范? 1. 每行代码不超过80字符 2. 不要在逗号, 分号, 冒号前加空格, 应该之后加空格 3. 列表, 索引,切片的左括号前不加空格 4. 比较运算前后 加一个空格 ...

  7. Xpath语法学习

    贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考,推荐 XPath 详解,总结 3 详细语法参考 Xpath语法格式整理 4 官方参考 XP ...

  8. ActiveMQ入门练习

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...

  9. springcloud(十二):使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...

  10. asp.net web api 向客户端返回错误信息

    1使用Http状态码 ASP.NET Web Api框架提供了Http状态码的值,如下图所示. 虽然有这些预定义的状态码,但在实际项目中使用自定状态码结合预定义状态码更有优势. 通过在适当的位置抛出异 ...