Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查一个元素是否等于大数组中所有数组元素的第一个元素_Python_Arrays - Fatal编程技术网

Python 检查一个元素是否等于大数组中所有数组元素的第一个元素

Python 检查一个元素是否等于大数组中所有数组元素的第一个元素,python,arrays,Python,Arrays,我有一个数组。让我们假设[[1,2,0],[3,4,10],[5,6,20],[7,8,30]]。例如,我想检查数字5是否是所有内部数组的第一个元素,数字2是否是所有内部数组的第二个元素 我知道这可以通过一个for循环来完成,该循环以数组的长度作为其范围 for it1 in range(len(array0)): if number1 == array0[it1][0] and number2 == array0[it1][1] : #do something 我想知道

我有一个数组。让我们假设[[1,2,0],[3,4,10],[5,6,20],[7,8,30]]。例如,我想检查数字5是否是所有内部数组的第一个元素,数字2是否是所有内部数组的第二个元素

我知道这可以通过一个for循环来完成,该循环以数组的长度作为其范围

for it1 in range(len(array0)):
    if number1 == array0[it1][0] and number2 == array0[it1][1] :
       #do something
我想知道对于上述问题是否有更好的内置单行代码。我试过阵列切片。但它给了我错误

这就是我尝试的切片。请检查它是否正确

if number1 == array0[:,0] and number2 == array0[:,1]:
    #do something
下面是一个示例代码

array0 =  [[1,2,0], [3,4,10], [5,6,20], [7,8,30]]
number1 = 5
number2 = 2
if number1 == array0[:,0] and number2 == array0[:,1]:
    print("Numbers match")
我得到的错误是:
TypeError:列表索引必须是整数或片,而不是元组。您正在将int与列表进行比较。试试这个:

import numpy as np
array0 =  np.array([[1,2,0], [3,4,10], [5,6,20], [7,8,30]])
number1 = 5
number2 = 2
if all([number1 == x for x in array0[:,0]]) and \
   all([number2 == x for x in array0[:,1]]):
    print("Numbers match")
此外,由于本机Python不支持切片
a[:,i]
,因此会出现类型错误。因此,使用本机Python列表:

array0 =  [[1,2,0], [3,4,10], [5,6,20], [7,8,30]]
number1 = 5
number2 = 2
if all([number1 == x[0] and number2 == x[1] for x in array0]):
    print("Numbers match")

错误信息是什么?编辑了原始帖子添加了我的切片数组代码我无法验证它是否正确,因为你没有提供一个,而且你没有回答我的问题,因为你指出:但它给了我错误。错误是什么?您是否收到错误消息?它是一个数组。在原始文档中添加了更多信息post@spnsp无法复制。
num1, num2 = 5, 2
print("Match") if all([x[0] == num1 and x[1] == num2 for x in array0]) else print("No match")