编码时难免遇到检查一个字符串是否包含指定的字符串,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将追究其相关法律责任。


交流合作

如需交流咨询或商务合作请扫描下图微信二维码联系。