Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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_Multidimensional Array - Fatal编程技术网

Python 确定数组中的数组是否连续

Python 确定数组中的数组是否连续,python,arrays,multidimensional-array,Python,Arrays,Multidimensional Array,首先,我从分类的试验数据开始: [[ 2, 4, 9, 10, 11], [ 2, 6, 7, 8, 14], [ 3, 6, 8, 8, 11], [ 4, 6, 10, 11, 13], [ 2, 3, 3, 5, 6], [ 3, 5, 12, 12, 13], [ 2, 2, 3, 9, 11], [ 2, 5, 11, 11, 13], [ 3, 5, 7, 9, 10], [ 2, 6, 7, 8, 14]] 然后,

首先,我从分类的试验数据开始:

[[ 2,  4,  9, 10, 11],
 [ 2,  6,  7,  8, 14],
 [ 3,  6,  8,  8, 11],
 [ 4,  6, 10, 11, 13],
 [ 2,  3,  3,  5,  6],
 [ 3,  5, 12, 12, 13],
 [ 2,  2,  3,  9, 11],
 [ 2,  5, 11, 11, 13],
 [ 3,  5,  7,  9, 10],
 [ 2,  6,  7,  8, 14]]
然后,我的目标是在其中每个数组的位置返回True或False,然后打印出True(连续数组)的数量

到目前为止,我已经做到了:

def isStraight(arr, n):

    for i in range(1,n): 
        if (arr[i] - arr[i-1] > 1) : 
            return 0
    return 1
但它返回一个错误,即

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

因此,我不知道如何实现另一个for循环来迭代内部数组。任何帮助都将不胜感激。

如果任何连续元素的差值大于1,我假设数组是连续的,请尝试以下代码:

a=[[2,4,9,10,11],
[ 2,  6,  7,  8, 14],
[ 3,  6,  8,  8, 11],
[ 4,  6, 10, 11, 13],
[ 2,  3,  3,  5,  6],
[ 3,  5, 12, 12, 13],
[ 2,  2,  3,  9, 11],
[ 2,  5, 11, 11, 13],
[ 3,  5,  7,  9, 10],
[ 2,  6,  7,  8, 14]]
def isStraight(arr,n):
对于范围(1,n)内的i:
如果(arr[i]-arr[i-1]>1:
返回0
返回1
值=[]
对于a中的j:
如果(IsStright(j,len(j))==1:
values.append(True)
其他:
values.append(False)
打印(值)

此代码的输出包含正确和错误的列表。True表示其对应数组是连续的,false表示其对应数组是非连续的。最后,显示了连续阵列的数量

def contiguous_arrays(array):
    value=[]
    for i in range(len(array)):
        value.append(array[i]==list(range(min(array[i]),max(array[i])+1)))
    print(value)
    print('Number of continuous arrays:',value.count(True))

array=[[ 2,  4,  9, 10, 11],
       [ 2,  6,  7,  8, 14],
       [ 3,  6,  8,  8, 11],
       [ 4,  6, 10, 11, 13],
       [ 2,  3,  3,  5,  6],
       [ 3,  5, 12, 12, 13],
       [ 2,  2,  3,  9, 11],
       [ 2,  5, 11, 11, 13],
       [ 3,  5,  7,  9, 10],
       [ 2,  6,  7,  8, 14]]
contiguous_arrays(array)
# [False, False, False, False, False, False, False, False, False, False]             Number of continuous arrays: 0

预期输出是什么?如何定义数组是否连续?如果数组按顺序递增,则@Chris的可能重复预期输出将如下[True-False]等。例如,12345是正确的,但15637是错误的欢迎来到stackoverflow ramin。请为你的答案提供一些解释。很抱歉没有说得更清楚,但这正是我想要的。非常感谢。