Якщо у вас величезна кількість об'єктів, це може (часом) бути набагато швидшим:
try:
orgs[0]
# If you get here, it exists...
except IndexError:
# Doesn't exist!
Над проектом, над яким я працюю з величезною базою даних, not orgs
є 400+ мс і orgs.count()
становить 250 мс. У моїх найпоширеніших випадках використання (у тих випадках, де є результати), ця методика часто призводить до зниження до 20 мс. (Я знайшов один випадок, це було 6).
Звичайно, це може бути набагато довше, залежно від того, наскільки базується база даних, щоб знайти результат. Або навіть швидше, якщо він швидко знайде його; YMMV.
EDIT: Це буде часто повільніше , ніж orgs.count()
якщо результат не знайдений, особливо якщо умова фільтрації ви на рідкісний один; як результат, це особливо корисно для функцій перегляду, де вам потрібно переконатися, що перегляд існує чи кинути Http404. (Де можна сподіватися, люди просять URL-адреси, які існують частіше, ніж ні.)