代码改变世界

Python字符串的操作

2018-04-13 15:31  钱先生  阅读(206)  评论(0编辑  收藏  举报

字符串常用操作

  1 name = "my name is alex"
  2 
  3 # 注: python中方法名前后带下划线的是供内部使用的方法, 如方法__dir__(). 这种方法是不对外提供使用的.
  4 
  5 # 把第一个单词的首字母改成大写
  6 print(name.capitalize())
  7 
  8 
  9 # 把所有单词的首字母改成大写
 10 print(name.title())
 11 
 12 
 13 # 把所有单词中字母的大小写反转(即原来大写的改小写,原来小写的改大写)
 14 print('Alex Li'.swapcase()) # 返回aLEX lI
 15 
 16 
 17 # 和列表中的count()方法作用一样,统计特定字符或字符串出现的次数
 18 print(name.count("a"))
 19 
 20 
 21 # 设置字符串打印格式. 头尾添加特殊符号.
 22 print(name.center(50,"..."))  # 一共50个字符, 不够的字符长度用...补足
 23 
 24 
 25 # 转换字符串为指定长度, 不足部分在字符串末尾添加特殊符号补足.
 26 print(name.ljust(50,'*')) #字符串长50, 不够的在末尾补上*.
 27 
 28 
 29 # 转换字符串为指定长度, 不足部分在字符串开头添加特殊符号补足.
 30 print(name.rjust(50,'*')) #字符串长50, 不够的在开头补上*.
 31 
 32 
 33 # 转换字符串为指定长度, 不足部分在字符串开头添加0补足.
 34 print('123'.zfill(50))
 35 
 36 
 37 # 以...开头
 38 print('abcd'.startswith())
 39 
 40 
 41 # 以...结尾
 42 print(name.endswith())
 43 
 44 
 45 # 把字符串中的tab键转成指定数量的空格
 46 name1 = "my \tname is alex"
 47 print(name1.expandtabs(tabsize=30)) #把tab转换成30个空格
 48 
 49 
 50 # 查找字符串中指定字符的位置
 51 print(name.find("y"))
 52 # 可以借用此方法来对字符串进行切片
 53 print(name[name.find("name"):9]) # 取出name及其后面的字符串
 54 
 55 
 56 # 查找字符串中指定字符的位置,但当该字符多次出现时仅返回最后一次再现的位置索引.
 57 print('alex lie'.rfind('e'))
 58 
 59 
 60 # 格式化
 61 name2 = "my name is {name} and i am {year} old"
 62 print(name.format(name='alex', year=22))
 63 print(name.format_map({'name':'alex','year':12}))
 64 
 65 
 66 # 判断一个字符串是不是阿拉伯数字 (只包含英文字母加上0-9, 不可以有其它字符或特殊符号)
 67 print('abc123'.isalnum())
 68 
 69 
 70 # 是否纯英文字符
 71 print('abA'.isalpha())
 72 
 73 
 74 # 是不是十进制的数
 75 print('1.23'.isdecimal())
 76 
 77 
 78 # 判断是不是一个合法的标识符(即是不是一个合格的变量名.)
 79 print('1A'.isidentifier())
 80 
 81 
 82 # 是不是小写
 83 print('a 1A'.islower())
 84 
 85 
 86 # 是不是数字 (only numeric character). 和isdigit()方法的区别? TODO
 87 print('33.33'.isnumeric())
 88 
 89 
 90 # 是不是空格
 91 print('aaa'.isspace())
 92 
 93 
 94 # 是不是所有单词的首字母均大写
 95 print('My name is '.istitle())
 96 
 97 
 98 # 是不是可打印. 所有String不存在这个问题,一定能都打印. 如果是tty file, drive file则不能打印
 99 print('My name is'.isprintable())
100 
101 
102 # 是不是大写
103 print('my name is'.isupper())
104 
105 
106 # 把列表中的元素取出变成字符串(各个元素中间可用逗号隔开,也可以不添加任何间隔符)
107 print(','.join(['1','2','3','4']))
108 # 列表中必须是字符串形式的['1','2'],否则如果是数字形式[1,2]会join失败
109 
110 
111 # 把大写变成小写
112 print('Alex'.lower())
113 
114 
115 # 把小写变成大写
116 print('alex'.upper())
117 
118 
119 # 从左边去掉空格和回车
120 print(' Alex  \n'.lstrip())
121 
122 
123 # 默认从两边去掉空格和回车
124 print('\n  Alex\n'.strip())
125 
126 
127 # 从右边去掉空格和回车
128 print('al \n'.rstrip())
129 
130 
131 # 对字符串进行加密
132 p = str.maketrans("abcdef",'123456')
133 print("alex li".translate(p)) # 返回115x li
134 
135 
136 
137 # 替换
138 print('alex li'.replace('l','L'))  # 字符串中所有l都将被替换成L
139 print('alex li'.replace('l','L',1)) # 仅将字符串中第一个l替换成L
140 
141 
142 # 把字符串按照指定间隔符分成列表
143 print('alex li'.split()) # 按空格分
144 print('alex liline'.split('l'))  # 按照字母l分. 因为l被当成分隔符,所以打印结果中将不会出现l.
145 print('1+2+3+4'.split('+'))  # 按+分, 把数字都提取出来
146 
147 
148 # 按字符串按照换行符分成列表
149 print('1+2\n+3+4'.splitlines())
150 # 此方法略同于print('1+2\n+3+4'.split(\n), 但这种写法只在windows下起作用. 而splitlines()方法在不同环境都可以用.