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. 整体架构图 ...
随机推荐
- MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到
对照<第一行代码——Android>进行学习,第五章中说到广播包的相关知识,前面获取广播等程序例程都可以跑的通,但是在5.3.2节中,程序A发送自定义广播,并接收自定义广播,同时程序B也接 ...
- mac 删除垃圾篓中的文件
1.打开终端输入: sudo rm -rf /Volumes/kaid/.Trashes/ 2.输入本机密码
- Ubuntu下使用Nginx+uWSGI+Flask(初体验)
Ubuntu 18.04,Nginx 1.14.0, uWSGI 2.0.17.1,Flask, 前言 Windows不支持uWSGI!为了上线自己的项目,只能选择Linux. 自己前面开发了一个Fl ...
- ExtJs的Reader
ExtJs的Reader Reader : 主要用于将proxy数据代理读取的数据按照不同的规则进行解析,讲解析好的数据保存到Modle中 结构图 Ext.data.reader.Reader 读取器 ...
- java基础56 HTML5的标签知识(网页知识)
本文知识点(目录): 1.html常用标签 2.html实体标签 3.html媒体标签 4.html超链接标签 5.html图片标签 6.html标个标签 7.html框 ...
- type Iterator does not take parameters
在ubuntu编译java程序时报错:type Iterator does not take parameters 源码如下: package object; import java.util.*; ...
- Oracle与Sqlserver数据共享
需求:在一个集成平台中有一个主系统使用的是Oralce数据库,子系统使用的SqlServer 数据库,如何让子系统的数据库与主系统的人员同步呢? 思路:通过服务WebService 公开接口 1.与主 ...
- InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法
简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...
- java 基础类库之 FormatFun
package com.exjor.webdemo; import java.text.SimpleDateFormat; import java.util.Date; public class Fo ...
- 流程设计器jQuery + svg/vml(Demo7 - 设计器与引擎及表单一起应用例子)
去年就完成了流程设计器及流程引擎的开发,本想着把流程设计器好好整理一下,形成一个一步一步的开发案例,结果才整理了一点点,发现写文章比写代码还累,加上有事情要忙,结果就.. 明天要去外包驻场了,现把流程 ...