Python字符串及常用函数

持续更新

文章目录

字符串

index()、rindex()、count()

index()返回一个字符串在当前字符串中首次出现的位置,如果当前字符串中不存在此字符串,则抛出异常;
rindex()用来返回一个字符串在当前字符串中最后一次出现的位置;
count()用来统计一个字符串在当前字符串中出现的次数。

text='处处飞花飞处处,声声笑语笑声声'
print(text.index('处'))
print(text.rindex('声'))
print(text.count('笑'))
0
14
2

replace()、maketrans()、translate()

replace()替换指定字符或子字符串的所有重复出现;
maketrans()用来生成字符映射表;
translate()根据映射表转换字符。

text='python is good.'
print(text.replace('p','P').replace('good','best'))
# Python is best.
table=''.maketrans('0123456789','零壹贰叁肆伍陆柒捌玖')
print('Tel:1008611'.translate(table))
# Tel:壹零零捌陆壹壹

ljust()、rjust()、cente()

文本分别居左、居右、居中。

print('文本居左'.ljust(20)+'!')
print('文本居中'.center(20)+'!')
print('文本居右'.rjust(20)+'!')
'''
文本居左                !
        文本居中        !
                文本居右!
'''

split()、rsplit()、join()

split()使用指定的字符串作为分割符,如不指定则默认为空格、换行符、制表符等空白字符。
rsplit()从右向左进行分割
join()使用指定字符串作为连接符

text='Beautiful is better than ugly.'
print(text.split()) # 使用空白字符进行分割
print(text.split(maxsplit=1)) # 最多分割一次
print(text.split(maxsplit=2)) # 最多分割两次
print('1,2,3,4'.split(',')) # 使用逗号进行分割
print(','.join(['1','2','3','4'])) # 使用逗号进行连接、
print(':'.join(map(str,range(1,5)))) # 使用冒号进行连接
print(''.join(map(str,range(1,5)))) # 直接连接不接连接符

'''
['Beautiful', 'is', 'better', 'than', 'ugly.']
['Beautiful', 'is better than ugly.']
['Beautiful', 'is', 'better than ugly.']
['1', '2', '3', '4']
1,2,3,4
1:2:3:4
1234
'''

lower()、upper()、capitalize()、title()、swapcase()

text='explicit is Better thAn implicit.'
print(text.lower()) # 全部转换为小写
print(text.upper()) # 全部转换为大写
print(text.capitalize()) # 句首字母转为大写
print(text.title()) # 每个单词首字母转换为大写
print(text.swapcase()) # 所有字母大写转换为小写,小写转换为大写

startswith()、endswith()

测试字符串是否以指定的一个或几个字符串开始或结束。

text='Python is good!'
print(text.startswith('python')) # False
print(text.startswith('Python')) # True
print(text.endswith(('!','.','?'))) # True

strip()、rstrip()、lstrip()

text='    ======test====   =#    '
print(text.strip()) # 删除两侧的空白字符
print(text.rstrip()) # 删除右侧的空白字符
print(text.lstrip()) # 删除左侧的空白字符
print(text.strip('=# ')) # 删除两侧的=、#和空格
======test====   =#
    ======test====   =#
======test====   =#    
test

sorted() 排序

from random import shuffle
data=list(range(20))
shuffle(data) # 随机打乱顺序
print(data)
print(sorted(data)) # 升序排序
print(sorted(data,key=str)) #按转换成字符串后的大小升序排序
print(sorted(data,key=str,reverse=True)) # 降序排序
[2, 11, 19, 6, 17, 15, 12, 9, 3, 16, 0, 10, 13, 18, 1, 14, 4, 7, 5, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 1, 0]

reversed() 翻转

reversed 对象具有惰性求值特点,其中的元素只能使用一次,不支持用内置函数len()计算元素个数,也不支持使用内置函数reversed()再次翻转。

from random import shuffle
data=list(range(20))
shuffle(data) # 随机打乱顺序
print(data)
reversedData=reversed(data) # 生成reversed对象
print(reversedData)
print(list(reversedData)) # 根据reversed对象得到列表
print(tuple(reversedData)) # 空元组,reversed对象中元素只能使用一次
[1, 10, 4, 2, 3, 7, 18, 14, 12, 16, 6, 11, 8, 13, 9, 19, 15, 17, 0, 5]
<list_reverseiterator object at 0x00000205572967C8>
[5, 0, 17, 15, 19, 9, 13, 8, 11, 6, 16, 12, 14, 18, 7, 3, 2, 4, 10, 1]
()

append()、insert()、extend()

lista=[1,2,3,4]
lista.append(5) # 向列表添加元素
lista.insert(5,6) # 向列表插入元素
lista.extend([7,8]) # 将另一个列表中的所有元素追加到当前列表的尾部
print(lista)
[1, 2, 3, 4, 5, 6, 7, 8]

pop()、remove()

lista=[1,2,3,4]
print(lista.pop()) # 默认 删除列表中最后一个元素,并返回这个删除的值
print(lista)

print(lista.pop(1)) # 删除位置1上的元素,并返回位置1的元素
print(lista)

lista.remove(3) # 删除元素3 (3是元素不是位置),该方法没有返回值
print(lista)
4
[1, 2, 3]
2
[1, 3]
[1]
上一篇:单链表的两种合并操作(C语言)


下一篇:[leetcode/lintcode 题解] 算法面试真题详解:简化路径