null проверка - нулевой объект в Python?




на пустая (5)

Как я могу ссылаться на нулевой объект в Python?


Answers

В Python для представления отсутствия значения вы можете использовать значение None ( types.NoneType.None ) для объектов и «» (или len () == 0 ) для строк. Следовательно:

if yourObject is None:  # if yourObject == None:
    ...

if yourString == "":  # if yourString.len() == 0:
    ...

Что касается разницы между «==» и «is», проверка наличия идентификатора объекта с использованием «==» должна быть достаточной. Однако, поскольку операция «есть» определяется как операция идентификации объекта, вероятно, правильнее использовать ее, а не «==». Не уверен, есть ли разница в скорости.

В любом случае, вы можете посмотреть:


Он не называется null, как на других языках, но None . Всегда есть только один экземпляр этого объекта, поэтому вы можете проверить эквивалентность с x is None , если x == None , вместо x is None (сравнение идентичности) вместо x == None .


В Python объект «null» - это singleton None .

Лучшим способом проверить вещи для «Ненецкого» является использование оператора идентификации:

if foo is None:
    ...


Вариант ответа от FMc и user7177 даст dict, который может вернуть все индексы для любой записи:

>>> a = ['foo','bar','baz','bar','any', 'foo', 'much']
>>> l = dict(zip(set(a), map(lambda y: [i for i,z in enumerate(a) if z is y ], set(a))))
>>> l['foo']
[0, 5]
>>> l ['much']
[6]
>>> l
{'baz': [2], 'foo': [0, 5], 'bar': [1, 3], 'any': [4], 'much': [6]}
>>> 

Вы также можете использовать это как один лайнер для получения всех индексов для одной записи. Нет никаких гарантий эффективности, хотя я использовал set (a), чтобы уменьшить количество вызовов лямбда.





python null