Output:
FalseTrueTrueTrue
str.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:
TrueTrueTrue
str.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 found
str.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)
推荐阅读
- Python函数科学速查表
- Django 入门:构建Python Web应用的全面指南
- Python函数详解:让代码更高效、易读、可维护
- AIGC+低代码,一场围绕开发的深度革命
- 到底该不该使用Python?
- Linux下Python安装配置指南
- Python 失宠!Hugging Face 用 Rust 新写了一个 ML 框架,现已低调开源
- Python编码的陷阱与避坑指南
- Python 3.11的10个高效新特性
- 深度NLP模型的泛化问题