博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4 python字符串、列表处理函数
阅读量:4594 次
发布时间:2019-06-09

本文共 7922 字,大约阅读时间需要 26 分钟。

1     mycommstr=r""" ping  %s -n 3|tail -2|head -1|awk '{print $7}'|awk -F "%%" '{print $1}'  """      2       3   4     """  5 特别说明:  6     如果字符串中有{}不是占位符,最好是使用 % 来拼接字符串,防止与{}冲突,而%的转义,应该使用%%   而不是\%  7   8 ###################### 字符串  ################################################  9  10 1,字符串的拼接 11    a="abc" 12    b="eee" 13    print (a+b)    -->  "abceee" 14  15    a=123 16    b="eee" 17    print (str(a)+b)  --> "123eee"  ##注意数字必须先转换成str字符串类型,才能拼接 18  19   len()   --获取序列表长度 20  21 2,字符串格式化 format函数 22     语法: 23     str.format() 24  25 #通过位置 26 print '{0},{1}'.format('chuhao',20) 27 print '{},{}'.format('chuhao',20) 28 print '{1},{0},{1}'.format('chuhao',20) 29  30 #通过关键字参数 31 print '{name},{age}'.format(age=18,name='chuhao') 32  33 class Person: 34     def __init__(self,name,age): 35         self.name = name 36         self.age = age 37  38     def __str__(self): 39         return 'This guy is {self.name},is {self.age} old'.format(self=self) 40  41 print str(Person('chuhao',18)) 42  43 #通过映射 list 44 a_list = ['chuhao',20,'china'] 45 print 'my name is {0[0]},from {0[2]},age is {0[1]}'.format(a_list) 46 #my name is chuhao,from china,age is 20 47  48 #通过映射 dict 49 b_dict = {'name':'chuhao','age':20,'province':'shanxi'} 50 print 'my name is {name}, age is {age},from {province}'.format(**b_dict) 51 #my name is chuhao, age is 20,from shanxi 52  53 #填充与对齐 54 print '{:>8}'.format('189') 55 #     189 56 print '{:0>8}'.format('189') 57 #00000189 58 print '{:a>8}'.format('189') 59 #aaaaa189 60  61 #精度与类型f 62 #保留两位小数 63 print '{:.2f}'.format(321.33345) 64 #321.33 65  66 #用来做金额的千位分隔符 67 print '{:,}'.format(1234567890) 68 #1,234,567,890 69  70 #其他类型 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。 71  72 print '{:b}'.format(18) #二进制 10010 73 print '{:d}'.format(18) #十进制 18 74 print '{:o}'.format(18) #八进制 22 75 print '{:x}'.format(18) #十六进制12 76  77  78 -------------zfill()方法 79 描述 80 Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。 81 语法 82     str.zfill(width) 83 参数 84     width -- 指定字符串的长度。原字符串右对齐,前面填充0。 85 返回值 86     返回指定长度的字符串。 87  88 ---举例: 89 #!/usr/bin/python 90  91 str = "this is string example....wow!!!"; 92  93 print str.zfill(40); 94 print str.zfill(50); 95 以上实例输出结果如下: 96 00000000this is string example....wow!!! 97 000000000000000000this is string example....wow!!! 98  99 100 101 ################  列表   ##############################################102 1,列表访问(函数不适用于字符串)103      索引104      切片105   增加106     list.append(元素值)107   删除108     list.remove(元素值或元素名)109     del(元素名)110     例:111     list1=["ni","hao","ma"]112     则113     list1.remove("hao")114     list1.remove(list1[1])  --都是可以的115 116   修改117     list[0]="xxx"118   查找 119     var in list120     --存在,则值为TURE 不存在则值为FALSE121     list=("1","2","3","4","5")122     a="22"123     b=a in list124     print (b)125         126 127 2,以下函数通用于字符串和列表128   max() 129   min()130   cmp()131 132 a=["1","2","3"]133 b=["1","6"]134  则 cmp(a,b)  为-1135     cmp(b,a)  为 1136     相同则为0137  说明:138     从前到后依次比较,如果能比较出大小则不向后比较了139 140 ##举例: 一个列表中的部分内容赋值给新列表141 >>> a=["sss","aaa","ddd","iiii"]142 >>> b=[a[1],a[3]]143 >>> print b144 ['aaa', 'iiii']145 146 ## 拼接两个列表147 在应用append()时,发现列表是以一个元素的形式追加到列表上的,最后查询后用的是extend()方法,下面是区别148  149 1.append()  向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加150 2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加151 3.+  直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上152 4.+= 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加153  154         ##替换列表中的空字符155         for i,value in enumerate(txt_list1):156                 if value=='':157                         txt_list1[i]='null'158 159 ####### 统计列表中指定元素个数160 count()方法操作示例161 162 有列表['a','iplaypython.com','c','b‘,'a'],想统计字符串'a'在列表中出现的次数,可以这样操作163 >>> ['a','iplaypython.com','c','b','a'].count('a')164 165 166 #######################  字典  ###################################################3167 3,字典168 字典169    即相当于perl中的哈希表,(使用键值来索引)170    使用{}171    格式如:172     dic={1:1,2:22,3:33}173     dic={"x":1,"y":2}174     175     说明;它是可以进行重新赋值的  dic[1]="noh"176     ##key的要求:177         必须是 字符串,数字  不能是变量178         必须使用冒号   ,没有等号179 180     当key是变量时, 则可以直接使用变量名181     如上例,print name  结果则是为"nihao"182     最好是让key为不可变类型183 184     访问值:185     dic[1]  则为1186     dic[2]  则为22187     for k in  dic :188       print k    --遍历打印字典189 190     增加元素:191       dic["a"]="nihaoma"   --即相当于增加了key为a 值为"nihaoma"的元素(数组只能使用函数list.appened)192 193     删除元素:194        del(dic["1"])   删除KEY为1的值195        del (dic )     删除整个字典(删除后字典不存在了)196        dic.pop("1") 删除并返回KEY为1的值197        dic.clear()  删除字典所有元素(即清空)198 199      使用;200      copy()函数生成字典201      get(KEY值) 函数,可以取字典中的值,当没有此KEY值时也不会报错,比使用索引KEY来访问要好202      例;203      get(2)  --如果有key为2的元素,则取出来,没有则啥也不报204      get(2,"error")  --如果有key为2的元素,则取出来,如果无,则返回error205 ##3,字典的遍历(遍历KEY的方法)206    ---字典的遍历。X依次取的是KEY,即相当于索引,207 d={1:111,2:222,3:333,4:444}208 for x in d:209    print (d[x])210 211   字典.items()  --字典的方法,用于获取对应字典的所有的键值对;212    --例如:213 print (d.items())  214    --结果为:215 dict_items([(1, 111), (2, 222), (3, 333), (4, 444)])216 217 ###4,字典的另一种遍历方法218     ---因为此时,键值对会变成一个整体219 for x in d.items():220    print (x)221 222 ####################################################################223 224 225 4,字符串相关函数   226    cmp()227        ---比较对象的大小(一般用于比较字符串)228        ---小 返回-1   大返回1   相等返回0229        ---参数可是数字,字符中,元组,列表230   ##以下函数仅限于操作字符串,(其它变量如列表,元组无法操作)231   str.capitalize()232   str.replace()233   str.split()234 235   str.capitalize()236      ---字符串首字母变成大写(如果首字符为数字或者本身就大小则看不出变化)237      str.capitalize("hello")238      a="hello"239      a.capitalize()240 241   str.replace()242      ---替换字符串的字符243      str.replace("hello","he","wo")244      a="hello"245      a.replace("he","wo")246 247      a="x1122x22334x3333"248      a.replace("x","w")249      a.replace("x","w",2)   --只替换前2个250 251   str.split()252      --切割字符串成一个列表253      a="192.168.1.100"254      a.split(".")   255         ['192', '168', '1', '100']256      a.split(".",2)  --只切割前面两个匹配的字符257         ['192', '168', '1.100']258 259 说明:260    如果要使用261      对象.方法()    ---则不需要引入模块262      模块.函数(对象,XX) ---则必须要引入string模块   import string 263 264 265 5,序列相关函数266 267    range()268        ---快速生成一个序列       269        例:270        range(10)     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]271        range(1,8)    [1, 2, 3, 4, 5, 6, 7]  --指定首尾时,最后一元素则为第二个参数前一个272        range(1,9,2)  [1, 3, 5, 7]    --指定步长273   xrange()274         ---也是生成一个序列275         ---但并不马上打印出来,适合于大量数据,因为还度快  276 277   len()278   max()279   min()280   filter()281   zip()282   map()283   reduce()284 285   filter()  ---用来操作一个序列,对序列进行刷选的286    例如:287      def func ():288          if x>5:289                 print ("ture")290      list=[1,2,3,4,5,6,7,8]291      filter(func,list)    结果则为[6,7,8]292   解释:293      当第一个参数(函数名) 以第二个参数为实参时 (即list为func的实参)294      func返回为真的保留下来。295 296      297 298   zip()  --仅并行遍历(即可以同时遍历多个,最终生一个列表),可以同时操作多个序列,生成将几个序列生成一个列表299    例如:300      name=("ni","hao","ma")301      age=(12,34,23)302      tel=("133","135","166","199")303 304      zip(name,age,tel)305      则结果是:[('ni', 12, '133'), ('hao', 34, '135'), ('ma', 23, '166')]306    注意:307      当并行遍历的几个序列长度不同时,则是取最短的列表进行遍历308 309   map() ---并行遍历并处理(即同时遍历多个,最终生成一个列表)310     例如;311     map(None,name,age,tel)   --注意None的写法312     则结果是[('ni', 12, '133'), ('hao', 34, '135'), ('ma', 23, '166'), (None, None, '199')]313     314     注意:315       当并行遍历时,使用MAP则不管几个序列长度如何,都会遍历完,序列短的以None标识316       这里的None其实是个函数,317       当然也可以写成其它函数,318       那么并行遍历的时候每个每个序列都会被此函数处理319     例如:320       a=[1,2,3]321       b=[2,2,2]322       def func (x,y):323           return (x*y)324       map(func,a,b) 325          结果为:[2, 4, 6]326 327    reduce()328       ---即从第二个参数即序列中依次取相应的元素,作为第一个参数即函数的实参329       ---只操作一个列表,有点象递归,第一次调用第一个参数即函数的结果作为第二次调用本函数的实参330       例如:331         list=range(1,101)332         def func ():333             return x+y334         reduce(func,list)335           则结果为5050336         337

 

转载于:https://www.cnblogs.com/2mei/p/9254058.html

你可能感兴趣的文章
JVM、springboot、事物的优秀博客
查看>>
Android 实用代码片段
查看>>
剑指offer 面试29题
查看>>
自定义字段注解
查看>>
POJ 1324 Holedox Moving(A* + 状态设计 + 上界剪枝)
查看>>
洛谷P1390 公约数的和 [2017年6月计划 数论12]
查看>>
2016计蒜之道复赛A 百度地图的实时路况
查看>>
How to get md5 and SHA1 in objective c (iOS sdk)
查看>>
代动词
查看>>
虚拟私有云(Virtual Private Cloud,专有网络)配置方式总结
查看>>
bayer格式
查看>>
7.19考后总结
查看>>
2019-03-15 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用xlwt写到Excel中...
查看>>
用Latex写学术论文: IEEE Latex模板和文档设置(\documentclass)
查看>>
HSmartWindowControl 之 显示图像
查看>>
PostCSS一种更优雅、更简单的书写CSS方式
查看>>
LaTeX实验报告模板
查看>>
实例讲解Linux系统中硬链接与软链接的创建
查看>>
JDK安装、变量、变量的分类
查看>>
[POI2000] 最长公共子串
查看>>