Есть ли в Python метод "содержит" подстроку для строки?

Если вы начинаете с sequence, определенного как IEnumerable<T>, и знаете, что его можно безопасно перечислить несколько раз (например, потому что это массив или список), вы можете просто использовать этот простой шаблон для обработки элементы в партиях:

while (sequence.Any())
{
    var batch = sequence.Take(10);
    sequence = sequence.Skip(10);

    // do whatever you need to do with each batch here
}
3603
задан Peter Mortensen 26 May 2017 в 18:02
поделиться

3 ответа

Вы можете использовать в операторе :

if "blah" not in somestring: 
    continue
5877
ответ дан 17 December 2019 в 16:00
поделиться

Если это просто поиск подстроки, вы можете использовать string.find("substring").

Правда, с find, index и in нужно быть немного осторожным, поскольку это поиск по подстроке. Другими словами, вот так:

s = "This be a string"
if s.find("is") == -1:
    print "No 'is' here!"
else:
    print "Found 'is' in the string."

Будет выведено Найдено 'is' в строке. Аналогично, если "is" в s:, будет выведено True. Это может быть или не быть тем, что вы хотите.

615
ответ дан 17 December 2019 в 16:00
поделиться

если игла в стоге сена: - нормальное использование, как говорит @Michael - он полагается на оператор в , более читаемый и быстрый, чем вызов метода.

Если вам действительно нужен метод вместо оператора (например, чтобы сделать какой-то странный key = для очень своеобразной сортировки ...?), Это будет 'haystack' .__ contains __ . Но поскольку ваш пример предназначен для использования в if , я думаю, вы на самом деле не имеете в виду то, что говорите ;-). Непосредственное использование специальных методов не является хорошей формой (ни читабельностью, ни эффективностью) - вместо этого они предназначены для использования через операторы и встроенные функции, которые им делегируют.

165
ответ дан 17 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: