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()方法在不同环境都可以用.