Уведомления

Группа в Telegram: @pythonsu

#1 Июль 10, 2011 12:25:00

Danial_72
От:
Зарегистрирован: 2011-07-10
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка на существование элемента списка

Нужно проверить существует ли элемент с нужным индексом .. и еще нужно проверить существование переменной .. последнее я так понял нужно реализовать через свои силы(стандартных средств нет)



Офлайн

#2 Июль 10, 2011 12:56:30

Actor
От:
Зарегистрирован: 2010-10-10
Сообщения: 39
Репутация: +  0  -
Профиль  

Проверка на существование элемента списка

не уверен насчет правильности, но, возможно, такой способ подойдет:

# переменная в локальной или глобальной видимости
if a in locals() or globals(): print 'True'
# элемент списка
b = [1,2,3]
if 3 in b: print 'True'
# проверка существования переменной используя исключения
try:
с
except NameError:
с = None



Отредактировано (Июль 10, 2011 12:58:47)

Офлайн

#3 Июль 10, 2011 14:22:17

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2832
Репутация: +  186  -
Профиль   Отправить e-mail  

Проверка на существование элемента списка

if a in locals() or globals(): print 'True'
Может:
if "a" in locals() or "a" in globals(): print 'True'



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано (Июль 10, 2011 14:28:41)

Офлайн

#4 Июль 10, 2011 14:36:04

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проверка на существование элемента списка

> с нужным индексом
>>> if 0 <= i < len(mylist): …
>>> key in mydict

try:
value = mylist[i]
except IndexError:
# ...
else:
# ...
try:
value = mydict[key]
except KeyError:
# ...
else:
# ...
> проверить существование переменной
>>> value in mylist
>>> value in mydict.items()

..bw



Офлайн

#5 Июль 10, 2011 14:54:12

kachayev
От:
Зарегистрирован: 2011-07-08
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка на существование элемента списка

bw
> с нужным индексом
try:
value = mydict[key]
except KeyError:
# ...
else:
# ...
а не проще

key in mydict
?



Офлайн

#6 Июль 10, 2011 15:34:00

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проверка на существование элемента списка

При таком варианте больше работы проделывается:

if key in mydict:
value = mydict[key]
else:
# ...
А так то надо быть внимательнее прежде чем делать замечания, я предлагал и такой вариант. Примеры с исключениями представлены как пища к размышлению. Да и стандартные типы исключений по любому знать надо.

Такой вариант так же имеет право на жизнь и он часто практикуется кем ни поподя:
_stub = object()
value = mydict.get(key, _stub)
if value is _stub:
# ...
else:
# ...
Но обычно в таком контексте:
_stub = object()
def foo(key, default = _stub):
value = mydict.get(key, default)
if value is _stub:
raise MyException
..bw



Офлайн

#7 Ноя. 5, 2017 18:09:03

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка на существование элемента списка

Спасибо, разобрался!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version