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. 整体架构图 ...
随机推荐
- https://www.yunpanjingling.com/
https://www.yunpanjingling.com/ 账号 kein20 passwd a1234
- Robotium测试套管理测试用例
前提:已写好测试用例 新建个测试套MyTestSuite管理你需要跑的测试用例,或者将相同功能的测试用例归纳到一个测试套中 package com.robotium.test.testsuite; i ...
- 从一个局长使用BS系统的无奈看测试点
今天我点名买了个B/S系统,听说只要有浏览器就能用.我最讨厌装客户端了,用浏览器就是方便啊. 下面就是我使用这个系统碰到的麻烦事: 我登录失败的时候没有任何提示,这没什么,反正提示也只是说失败…… 进 ...
- Python subprocess- call、check_call、check_output
简介 subprocess模块用来创建新的进程,连接到其stdin.stdout.stderr管道并获取它们的返回码.subprocess模块的出现是为了替代如下旧模块及函数:os.system.os ...
- [java笔记]动态数组
private int count;//计数器 private int ary[] = new int [3]; if(count >= ary.length){ //数组动态扩展 int ne ...
- group by 并且 count(1)的linq写法
SELECT [MobleNo],count(1) FROM [CustMobleNo] group by [MobleNo] GO ===作用等于=== var rst = from c in da ...
- Flask SQLAlchemy & model
Flask-SQLAlchemy Flask-SQLAlchemy库让flask更方便的使用SQLALchemy,是一个强大的关系形数据库框架,既可以使用orm方式操作数据库,也可以使用原始的SQL命 ...
- Tetris:pygame实现
网上搜到一个Pygame写的俄罗斯方块(tetris),大部分看懂的前提下增加了注释,Fedora19下运行OK的 主程序: #coding:utf8 #! /usr/bin/env python # ...
- C++有super关键字么?
很多人在学习Java之后,看到Java里面有super关键字,用来表示父类,那么C++里面有super关键字么? 答案是否定的.这也很容易理解,C++由于支持多继承,所以假设存在super关键字,那么 ...
- Azkaban(二)CentOS7.5安装Azkaban
1.软件介绍 Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz Azkaban Excutor 执行服务器:azkaban-executor-server ...