__contains__列表类的方法是否检查对象本身是否是列表的元素,还是检查列表是否包含与给定参数等效的元素?
你能举个例子来证明一下吗?
尝试从 python 列表中索引或删除 numpy 数组项,第一项不会按预期失败。
import numpy as np
# works:
lst = [np.array([1,2]), np.array([3,4])]
lst.index(lst[0])
# fails with: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
lst = [np.array([1,2]), np.array([3,4])]
lst.index(lst[1])
Run Code Online (Sandbox Code Playgroud)
我理解为什么第二个失败,我想理解为什么第一个有效。
我有一个numpy数组列表,比如说,
a = [np.random.rand(3, 3), np.random.rand(3, 3), np.random.rand(3, 3)]
Run Code Online (Sandbox Code Playgroud)
我有一个测试数组,比如说
b = np.random.rand(3, 3)
Run Code Online (Sandbox Code Playgroud)
我想检查是否a包含b。然而
b in a
Run Code Online (Sandbox Code Playgroud)
引发以下错误:
ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我想要的正确方法是什么?
检查相等性时,以下速度和功能之间是否存在任何实际差异:
number = 'one'
if number == 'one' or number == 'two':
Run Code Online (Sandbox Code Playgroud)
与
number = 'one'
if number in ['one', 'two']:
Run Code Online (Sandbox Code Playgroud)