• 4 python字符串、列表处理函数


      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 list
    120     --存在,则值为TURE 不存在则值为FALSE
    121     list=("1","2","3","4","5")
    122     a="22"
    123     b=a in list
    124     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)  为-1
    135     cmp(b,a)  为 1
    136     相同则为0
    137  说明:
    138     从前到后依次比较,如果能比较出大小则不向后比较了
    139 
    140 ##举例: 一个列表中的部分内容赋值给新列表
    141 >>> a=["sss","aaa","ddd","iiii"]
    142 >>> b=[a[1],a[3]]
    143 >>> print b
    144 ['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 #######################  字典  ###################################################3
    167 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]  则为1
    186     dic[2]  则为22
    187     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的元素,则取出来,如果无,则返回error
    205 ##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   相等返回0
    229        ---参数可是数字,字符中,元组,列表
    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+y
    334         reduce(func,list)
    335           则结果为5050
    336         
    337         
  • 相关阅读:
    零售数据框架
    API安全Checklist
    高级区块链工程师评定
    软件项目复杂性
    e-Commerce电商参考云架构
    面试中的学习能力判断
    SpringCloud微服务架构案例-共享服务中心
    Software Architecture and High Level Design软件架构与概要设计
    基于Istio的ServiceMesh
    a store with that domain name already exists怎么解决
  • 原文地址:https://www.cnblogs.com/2mei/p/9254058.html
Copyright © 2020-2023  润新知