Если вы начинаете с 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
}
Вы можете использовать в
операторе :
if "blah" not in somestring:
continue
Если это просто поиск подстроки, вы можете использовать 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
. Это может быть или не быть тем, что вы хотите.
если игла в стоге сена:
- нормальное использование, как говорит @Michael - он полагается на оператор в
, более читаемый и быстрый, чем вызов метода.
Если вам действительно нужен метод вместо оператора (например, чтобы сделать какой-то странный key =
для очень своеобразной сортировки ...?), Это будет 'haystack' .__ contains __
. Но поскольку ваш пример предназначен для использования в if
, я думаю, вы на самом деле не имеете в виду то, что говорите ;-). Непосредственное использование специальных методов не является хорошей формой (ни читабельностью, ни эффективностью) - вместо этого они предназначены для использования через операторы и встроенные функции, которые им делегируют.