⑴ python里的几个字符串处理函数
目前字符串直接加点的方法没法增加,可行的方法是重载或者扩展类。下面是一个扩展的例子。class string(str): def __init__(self, s): self.s = s def totest(self): print('This is a test.for ' + self.s) if __name__ == '__main__': abc = string('abc') print(abc.split('b')) abc.totest()
⑵ python怎么把字符串最后一个字符去掉
1、先将字符串转换成列表,之后再修改列表中的元素来完成,通过list(r)来将r字符串转化成了一个列表。
⑶ python字符串处理
s1=input('输入字符串1:')
s2=input('输入字符串2:')
s3=''.join([iforiins1ifinotins2])
print(s3)
⑷ python如何截取字符串到某个字符
答案:print a[0:6] /print a[:6]
以下为具体示例
str = ‘0123456789’
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
⑸ python字符串运算符
可以使用eval()函数,表示执行字符串表示的代码,例如你这个例子:
a='a'
b='in'
c='abc'
str="a"+b+"c"#拼接为"ainc"
printeval(str)#输出True
⑹ Python字符串操作的split方法
str.split()没有参数,代表以空字符分割,空字符包括空格、制表符、回车符、换行符等。因此,字符串中的空格和\n都是无参的split()的分割符。Line1-abcdef \nLine2-abc \nLine4-abcd分割后得到['Line1-abcdef', '', 'Line2-abc', '', 'Line4-abcd'],然后,split会抛弃得到的所有空字符串,因此最终结果就是['Line1-abcdef', 'Line2-abc', 'Line4-abcd']。
⑺ 常见的几种python字符串方法总结
split([sep]) 将字符串分割为列表,默认用空白符分割,给出字符串参数,用参数字符串分割
'a b c'.split() 返回 ['a','b','c']
join 将可迭代对象中的字符串连接在一起
'\n'.join(['a','b','c'] )返回字符串 "a\nb\nc"
str.find(substr,[start,[end]]) 从str的下标 start至end之间查找substr,返回substr出现位置的下标,未找到返回-1
str.index 与find相仿,但未找到抛出异常
其余还要通用的下标 ,切片操作等
⑻ python如何去除字符串中不想要的字符
问题:
过滤用户输入中前后多余的空白字符
‘ ++++abc123--- ‘
过滤某windows下编辑文本中的’\r’:
‘hello world \r\n’
去掉文本中unicode组合字符,音调
"Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"
如何解决以上问题?
去掉两端字符串: strip(), rstrip(),lstrip()
123456789101112131415
#!/usr/bin/python3 s = ' -----abc123++++ ' # 删除两边空字符print(s.strip()) # 删除左边空字符print(s.rstrip()) # 删除右边空字符print(s.lstrip()) # 删除两边 - + 和空字符print(s.strip().strip('-+'))
删除单个固定位置字符: 切片 + 拼接
123456
#!/usr/bin/python3 s = 'abc:123'# 字符串拼接方式去除冒号new_s = s[:3] + s[4:]print(new_s)
删除任意位置字符同时删除多种不同字符:replace(), re.sub()
1234567891011
#!/usr/bin/python3 # 去除字符串中相同的字符s = '\tabc\t123\tisk'print(s.replace('\t', '')) import re# 去除\r\n\t字符s = '\r\nabc\t123\nxyz'print(re.sub('[\r\n\t]', '', s))
同时删除多种不同字符:translate() py3中为str.maketrans()做映射
1234567
#!/usr/bin/python3 s = 'abc123xyz'# a _> x, b_> y, c_> z,字符映射加密print(str.maketrans('abcxyz', 'xyzabc'))# translate把其转换成字符串print(s.translate(str.maketrans('abcxyz', 'xyzabc')))
去掉unicode字符中音调
#!/usr/bin/python3 import sysimport unicodedatas = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"remap = { # ord返回ascii值 ord('\t'): '', ord('\f'): '', ord('\r'): None }# 去除\t, \f, \ra = s.translate(remap)'''通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。 如果未定义组合类,则返回0。'''cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建议拆分开来理解b = unicodedata.normalize('NFD', a)'''调用translate 函数删除所有重音符'''print(b.translate(cmb_chrs))
⑼ python字符串处理问题
strip函数只能去除首尾字符,不能去掉中间字符
strip函数没有副作用,也就是返回值才是去掉后的字符串
更简洁的写法left = ''.join([c for c in password if c in symbols])