Python168的学习笔记3
list.extend(),可以拓展list,a=(0,1),b=(2,3) a.extend(b),a就变成(0,1,2,3)
分割字符串(除去字符串中的,\/;之类的),如果用str.split(),默认是除去空格,然后返回处理过后的list,可以输入特定值如split(';'),但缺点是一次只能处理一个特定的。
#coding:utf8
def mySplit(s,ds):
res = [s] for d in ds:
t = []
map(lambda x : t.extend(x.split(d)),res)
#实际上就是res.split(d),然后将处理后的list全部加到t中
res = t return [x for x in res if x]#除去空的 s = 'ab;cd|efg;hi..jk\\mn\top'
print mySplit(s,',;|.\\\t')
通过循环使用可以达到最终效果。
在处理复杂情况时使用正则表达式会更简单。
import re
s = 'ab;cd|efg;hi..jk\\mn\top'
print re.split(r'[,;.\t\\|]+',s)
在判断字符串的开头或结尾,可以直接使用s.startwith()或s.endwith(),这两个函数可以接受tuple。
用re.sub可以做到字符串调换,先利用正则表达式来做到捕获各个组,然后在替换字符串中调整各个捕获组的位置。如将2016-11-06变成11/06/2016这样。
import re datas = ('2015-06-19','2015-06-20','2015-06-30') for data in datas:
# print re.sub(r'(\d{4})-(\d{2})-(\d{2})',r'\2/\3/\1',data)
print re.sub(r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',r'\g<month>/\g<day>/\g<year>',data)
拼接字符串用str.join()方法,'[]'.join(iter)(就是指每个元素中间可以选择加关键字)但是注意方法接收的对象,如果有数字需要转换为字符,而在这里,我们最好用()来传入迭代器而不是只用一次的list。
data = ['a','b','c','d',234] print ''.join((str(x) for x in data))#用圆括号就是迭代器,用方括号就是列表
关于对字符串的对齐操作,可以用str.ljust(),str.rjust(),str.center()之类的,如a = kkk, a.ljust(20,[=])就是会输出20个字符kkk在最左边,然后填充17个=进去。
用format()然后传入'<20'(左对齐,20个字符),'>20','^20'这些参数也跟上面那种方法一样。
关于删除某些字符串的方法
#coding:utf8
s = '-------abc+++++++++'
print s.strip('+-')#还有lstrip,rstrip,缺点在于只能去掉左右两端的
s = 'abc:123'
print s[:3] + s[4:]#切片用处很大局限
s = 'abc\tdef\tghc123\t'
print s.replace('\t', '')#只能替换单个
import re
s = 'abc\td\ref\tghc\n123\t'
print re.sub('[\t\r\n]','',s)#用正则应该是最好的
#s.translate(table[,deletechars])table可以是一个字典,里面对应着映射关系表;或者传入None,然后再传入要删除的关键字。
import string
s = 'abc123xyz'
print s.translate(string.maketrans('abcxyz', 'xyzabc'))#用maketrans()可以直接建立映射表
print s.translate(None,'')
Python168的学习笔记3的更多相关文章
- Python168的学习笔记8
#coding:utf8 #斐波那契数列,第三项起,每一项都等于前两项之和 def memo(func): cache = {}#闭包 def wrap(*args): if args not in ...
- Python168的学习笔记7
关于多线程操作. 对于IO操作,如访问网站,写入磁盘这种需要时间等待响应的操作,多个cpu也几乎不能提高效率. 对于CPU密集型操作,如这个格式转换,可以通过多个cpu同时去进行. 但是对于pytho ...
- Python168的学习笔记6
如何派生内置不可变类型并修改实例化行为. 个人理解,如何派生出自己想要的类. class IntTuple(tuple): def __new__(cls,iterable): g = (x for ...
- Python168的学习笔记5
关于对csv文件的操作. python标准库中有csv的库,使用非常方便. import csv with open('pingan.csv','rb') as rf: reader = csv.re ...
- Python168的学习笔记4
关于普通文本文件的读写 python2.7中,未注明的字符都是以acsii来编码的,而要让字符能够通用,必须声明为unicode. s=u'你好',s.encode('utf8')就是指用utf8来进 ...
- Python168的学习笔记2
关于for循环,其实质是利用被循环对象的__iter__,或者__getitem__属性接口,由可迭代对象得到迭代器.for循环就是不断调用.next(),直到最终捕获到stop. import re ...
- Python168的学习笔记1
在对list的条件选择有两种常用方法,直接使用filter函数,就是filter(func,sequence);另外一种就是迭代操作,类似 x for x in sequence func.这两种方法 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
随机推荐
- ubuntu更新源列表
1. 备份源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 2.修改更新源 打开源列表 sudo gedit /etc/ap ...
- go 函数介绍
1. 定义:有输入.有输出,用来执行一个指定任务的代码块 func functionname([parametername type]) [returntype] { //function body ...
- dorado 的学习位置、控件使用方法查找、示例演示地址
dorado的学习位置: http://wiki.bsdn.org/display/dorado7/Project+Home dorado的控件使用方法查找: http://dorado7.bsdn. ...
- 一、springboot入门
构建spring boot工程一般采用两种方式 gradle .maven maven方式 pom.xml spring-boot-starter:核心模块,包括自动配置支持.日志和YAML spri ...
- 02 Go 1.2 Release Notes
Go 1.2 Release Notes Introduction to Go 1.2 Changes to the language Use of nil Three-index slices Ch ...
- python基础-实现进度条功能,for和yield实现
实现进度条功能 方法一:简单FOR实现打印进度条功能 for i in range(10): print("#",end="",flush=True) time ...
- Spring框架的基本使用(AOP部分)
AOP,Aspect Oriented Programming,意为面向切面编程,是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP采取横向抽取机制,取代了传统纵向继承体系重复 ...
- hibernate cascade
默认:none Cascade 属性值: none:在保存.删除修改对象的时候,不考虑其附属物的操作 save-update:在保存.更新当前对象时,级联保存.更新附属物. delete:在删除当前对 ...
- POJ 3376 Finding Palindromes(manacher求前后缀回文串+trie)
题目链接:http://poj.org/problem?id=3376 题目大意:给你n个字符串,这n个字符串可以两两组合形成n*n个字符串,求这些字符串中有几个是回文串. 解题思路:思路参考了这里: ...
- sql server 2005/2008R2 报“红叉”错,即“不允许所请求的注册表访问权”的错误
一.使用报错展示: 1.红叉错: 2.报错文字信息: 解决办法:可以鼠标右键,以管理员的身份运行即可,但这治标不治本,按如下方法可以彻底解决:把“以管理员身份运行此程序”勾上,即可