Проверьте индекс списка в списке в python [duplicate]

Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена ​​в нуль (т. е. она не ссылалась на экземпляр фактического объекта).

Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.

if (myvar != null)
{
    // Go ahead and use myvar
    myvar.property = ...
}
else
{
    // Whoops! myvar is null and cannot be used without first
    // assigning it to an instance reference
    // Attempting to use myvar here will result in NullReferenceException
}
11
задан carlpett 30 March 2011 в 16:17
поделиться

5 ответов

Чтобы проверить, содержится ли в списке my_list массив, равный a, используйте

any((a == x).all() for x in my_list)
21
ответ дан Sven Marnach 23 August 2018 в 23:08
поделиться

Ответ Свена является правильным выбором, если вы хотите сравнить фактическое содержимое массивов. Если вы хотите только проверить, содержится ли в списке один и тот же экземпляр, вы можете использовать

any(a is x for x in mylist)

. Одно преимущество заключается в том, что это будет работать для всех видов объектов.

1
ответ дан andrenarchy 23 August 2018 в 23:08
поделиться

Вы можете преобразовать массив в список с помощью tolist(), а затем выполнить проверку:

my_list = [[1,1], [2,2]]

print(np.array([1,1]).tolist() in my_list)
print(np.array([1,2]).tolist() in my_list)
0
ответ дан aprospero 23 August 2018 в 23:08
поделиться

Как насчет этого:

a = array([1, 1])

l = [np.array([1,1]), np.array([2,2])]
list(map(lambda x: np.array_equal(x, a), l)

[True, False]
0
ответ дан Mahdi Ghelichi 23 August 2018 в 23:08
поделиться

Если вы ищете тот же самый экземпляр массива в стеке, независимо от того, являются ли данные одинаковыми, вам нужно:

id(a) in map(id, my_list)
2
ответ дан Paul 23 August 2018 в 23:08
поделиться
Другие вопросы по тегам:

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