Как уже упоминалось, оно может немного отличаться:
>>> "Python" in "Monty Python's Flying Circus"
True
>>> "Python" in "Monty Python's Flying Circus".split()
False
И с точки зрения производительности разделение намного дороже (оно создает временный список):
>>> from timeit import timeit
>>> timeit("""'Monty' in "Monty Python's Flying Circus".split() """)
0.20677191999857314
>>> timeit("""'Monty' in "Monty Python's Flying Circus" """)
0.03346360499563161
Мы также можем, вероятно, утверждать, что если искомое слово находится в начале предложения, sub in str
будет лучшим сценарием в O (1) (операция in, вероятно, кодируется с помощью strstr в C). );в то время как sub in str.split()
все равно придется разбить весь текст, прежде чем начинать искать слово (поэтому в лучшем случае всегда требуется не менее O (n), больше памяти и т. д.).