检查是否包含指定字符串
编码时难免遇到检查一个字符串是否包含指定的字符串,Python 提供了 index、find、in 3种方法完成这个任务,其中 in 是性能最好的方法。
编码时难免遇到检查一个字符串是否包含指定的字符串,Python 提供了好几种方法完成这个任务:
index
方法find
方法in
关键词 (性能最好)
以上方法的使用示例如下所示。
message = 'Please keep us informed, and good luck!'
substring = 'good luck'
# 方法一:使用 index 方法
try:
message.index(substring)
print('包含指定字符串: ' + substring)
except ValueError:
pass
# 方法二:使用 find 方法
if message.find(substring) >= 0:
print('包含指定字符串: ' + substring)
# 方法三:使用 in 关键词
if substring in message:
print('包含指定字符串: ' + substring)
这三种方法的性能是有差异的,下面使用 timeit 库进行测试,测试代码如下:
import timeit
setup = """
message = 'Please keep us informed, and good luck!'
substring = 'good luck'
"""
method_1_test_code = """
message.index(substring)
"""
method_2_test_code = """
message.find(substring)
"""
method_3_test_code = """
substring in message
"""
method_1_taking_time = timeit.timeit(stmt=method_1_test_code, setup=setup, number=10)
method_2_taking_time = timeit.timeit(stmt=method_2_test_code, setup=setup, number=10)
method_3_taking_time = timeit.timeit(stmt=method_3_test_code, setup=setup, number=10)
print('index 方法耗时: ' + str(method_1_taking_time))
print('find 方法耗时: ' + str(method_2_taking_time))
print('in 关键词耗时: ' + str(method_3_taking_time))
测试结果:
index 方法耗时: 2.4999899324029684e-06
find 方法耗时: 1.6999838408082724e-06
in 关键词耗时: 1.400010660290718e-06
从测试结果可以看出 in
关键词性能最好。
有关 Python 代码运行速度的测试方法请参见:如何测试 Python 代码的速度 - datetime, timeit
官方公众号
💯本站文章同步发表在官方公众号 ReadingHere,关注公众号您将在第一时间了解本站最新文章和资讯。
❤️欢迎您关注本站官方公众号 ReadingHere。
版权声明
本文由 ReadingHere 原创,未经 ReadingHere 授权不得转载、摘编。已经授权使用的,应在授权范围内使用,并注明来源: www.readinghere.com。违反上述声明者,ReadingHere 将追究其相关法律责任。