Python 字符串深度总结( 四 )

Output:
FalseTrueTrueTruestr.endswith(suffix) 返回 True 是以指定后缀结尾的字符串 。如果字符串以指定的前缀开头,str.startswith(prefix) 返回 True:
sentences = ['Time to master data science', 'I love statistical computing', 'Eat, sleep, code']# endswith() examplefor one_sentence in sentences:    print(one_sentence.endswith(('science', 'computing', 'Code')))Output:
TrueTrueFalse# startswith() examplefor one_sentence in sentences:    print(one_sentence.startswith(('Time', 'I ', 'Ea')))Output:
TrueTrueTruestr.find(substring) 如果子字符串存在于字符串中,则返回最低索引;否则它返回 -1 。str.rfind(substring) 返回最高索引 。如果找到,str.index(substring) 和 str.rindex(substring) 也分别返回子字符串的最低和最高索引 。如果字符串中不存在子字符串,则会引发 ValueError
string = "programming"# find() and rfind() examplesprint(string.find('m'))print(string.find('pro'))print(string.rfind('m'))print(string.rfind('game'))# index() and rindex() examplesprint(string.index('m'))print(string.index('pro'))print(string.rindex('m'))print(string.rindex('game'))Output:
607-1607---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)~AppDataLocalTemp/ipykernel_11336/3954098241.py in11 print(string.index('pro'))# Output: 012 print(string.rindex('m'))# Output: 7---> 13 print(string.rindex('game'))# Output: ValueError: substring not foundValueError: substring not foundstr.maketrans(dict_map) 从字典映射创建一个翻译表,str.translate(maketrans) 用它们的新值替换翻译中的元素 。例如:
example = "abcde"mapped = {'a':'1', 'b':'2', 'c':'3', 'd':'4', 'e':'5'}print(example.translate(example.maketrans(mapped)))Output:
12345字符串操作循环遍历一个字符串
字符串是可迭代的,因此它们支持使用 for 循环和枚举的循环操作:
# For-loop exampleword = "bank"for letter in word:    print(letter)Output:
bank# Enumerate examplefor idx, value in enumerate(word):    print(idx, value)Output:
0 b1 a2 n3 k字符串和关系运算符
当使用关系运算符(>、<、== 等)比较两个字符串时,两个字符串的元素按其 ASCII 十进制数字逐个索引进行比较 。例如:
print('a' > 'b')print('abc' > 'b')Output:
FalseFalse在这两种情况下,输出都是 False 。关系运算符首先比较两个字符串的索引 0 上元素的 ASCII 十进制数 。由于 b 大于 a,因此返回 False;在这种情况下,其他元素的 ASCII 十进制数字和字符串的长度无关紧要
当字符串长度相同时,它比较从索引 0 开始的每个元素的 ASCII 十进制数,直到找到具有不同 ASCII 十进制数的元素 。例如:
print('abd' > 'abc')Output:
True检查字符串的成员资格
in 运算符用于检查子字符串是否是字符串的成员:
print('data' in 'dataquest')print('gram' in 'programming')Output:
TrueTrue检查字符串成员资格、替换子字符串或匹配模式的另一种方法是使用正则表达式
import resubstring = 'gram'string = 'programming'replacement = '1234'# Check membershipprint(re.search(substring, string))# Replace stringprint(re.sub(substring, replacement, string))Output:
pro1234ming字符串格式
f-string 和 str.format() 方法用于格式化字符串 。两者都使用大括号 {} 占位符 。例如:
monday, tuesday, wednesday = "Monday", "Tuesday", "Wednesday"format_string_one = "{} {} {}".format(monday, tuesday, wednesday)print(format_string_one)format_string_two = "{2} {1} {0}".format(monday, tuesday, wednesday)print(format_string_two)format_string_three = "{one} {two} {three}".format(one=tuesday, two=wednesday, three=monday)print(format_string_three)format_string_four = f"{monday} {tuesday} {wednesday}"print(format_string_four)


推荐阅读